develop

코틀린에서 it 키워드

방뎁 2024. 11. 24. 20:47

코틀린의 it 키워드는 람다 표현식에서 단일 매개변수를 암시적으로 참조할 때 사용되는데,
flutter 개발하면서 코드 읽을때 조금 당양스러울 때가 있습니다.


it 키워드의 특징

  1. 단일 매개변수의 암시적 참조
    • 람다에서 단일 매개변수만 사용하는 경우, 별도의 매개변수 이름을 정의하지 않아도 됩니다.
    • 코틀린이 자동으로 해당 매개변수를 it로 참조합니다.
  2. 코드 간결화
    • 불필요한 매개변수 정의를 생략할 수 있어 코드를 간결하게 작성할 수 있습니다.
  3. 기본 제공 키워드
    • 별도의 선언 없이 사용할 수 있으며, 단일 매개변수를 요구하는 표준 라이브러리 함수에서 자주 사용됩니다.

it 키워드의 사용법

1. 기본 예제

it 키워드는 람다 표현식에서 단일 매개변수를 참조할 때 자동으로 사용할 수 있습니다.

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5)

    // map 함수에서 it 사용
    val doubled = numbers.map { it * 2 }
    println(doubled) // [2, 4, 6, 8, 10]
}

2. 필터링에서 사용

filter 함수에서 조건을 정의할 때 it을 사용해 간단히 표현할 수 있습니다.

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5)

    val evenNumbers = numbers.filter { it % 2 == 0 }
    println(evenNumbers) // [2, 4]
}

3. 반복 처리

forEach 함수에서 it을 사용해 리스트의 각 요소를 처리할 수 있습니다.

fun main() {
    val names = listOf("Alice", "Bob", "Charlie")

    names.forEach { println(it) }
    // 출력:
    // Alice
    // Bob
    // Charlie
}

it 키워드를 사용하지 않는 경우

다음과 같은 상황에서는 it 키워드를 사용할 수 없습니다:

  1. 명시적으로 매개변수 이름을 지정해야 하는 경우
    • 복잡한 로직을 작성할 때는 매개변수 이름을 지정하는 것이 가독성을 높일 수 있습니다.
val doubled = listOf(1, 2, 3).map { number -> number * 2 }
println(doubled) // [2, 4, 6]
  1. 두 개 이상의 매개변수를 사용하는 경우
    • it은 단일 매개변수에만 사용 가능하므로, 다중 매개변수가 필요한 경우 명시적으로 정의해야 합니다.
val pairs = listOf(Pair(1, "one"), Pair(2, "two"))
val mappedPairs = pairs.map { (key, value) -> "$key: $value" }
println(mappedPairs) // ["1: one", "2: two"]
  1. 중첩 람다에서 혼란을 방지하려는 경우
    • 여러 람다 식이 중첩된 경우, it을 사용하면 코드의 명확성이 떨어질 수 있습니다.
val nestedLambda = listOf("a", "b").map { outer ->
    listOf(1, 2).map { inner -> "$outer$inner" }
}
println(nestedLambda) // [[a1, a2], [b1, b2]]

it 키워드 사용 시 주의점

  • it은 코드가 짧고 간단할 때 유용하지만, 복잡한 로직에서는 명시적 매개변수 이름이 더 좋습니다.
  • it을 과도하게 사용하면 코드 이해도가 떨어질 수 있습니다.