본문 바로가기
Language/Kotlin

[Kotlin Basic]let함수에 대해

by 시니성 2023. 9. 15.

let 함수:

let은 Kotlin의 스코프 함수 중 하나입니다. 주로 아래와 같은 경우에 사용됩니다:

  1. 객체의 컨텍스트 내에서 연산을 수행할 때
  2. 널이 아닌 값으로 연산을 수행하려 할 때 (?.let 조합을 사용)

let 함수는 람다의 인자로 객체 자신을 전달하며, 람다의 결과를 반환합니다. 람다 내부에서는 it 키워드를 사용해 해당 객체에 접근할 수 있습니다.

가상 시나리오:

유저의 프로필 정보를 업데이트하는 함수가 있습니다. 이때, 유저의 이메일 주소가 존재하는 경우에만 업데이트를 진행하려고 합니다.

예시 코드:

data class User(var name: String, var email: String?)

fun updateUserProfile(user: User, newName: String, newEmail: String?) {
    // 유저의 새로운 이메일 주소가 null이 아닌 경우에만 이메일을 업데이트합니다.
    newEmail?.let {
        // 여기서 'it'는 newEmail을 참조합니다.
        user.email = it
    }

    // 이름은 항상 업데이트합니다.
    user.name = newName
}

fun main() {
    val user = User("John", "john@example.com")
    updateUserProfile(user, "John Doe", "john.doe@example.com")
    println(user)  // 출력: User(name=John Doe, email=john.doe@example.com)
}

코드 설명:

  • data class User(var name: String, var email: String?): User 데이터 클래스를 정의하였습니다. 이메일은 nullable로 선언되어 있습니다.
  • updateUserProfile 함수는 유저의 프로필을 업데이트합니다. 이때, 이메일 주소가 null인 경우 업데이트하지 않습니다.
  • newEmail?.let: newEmail이 null이 아닌 경우에만 블록 내의 코드를 실행합니다.
  • user.email = it: it는 newEmail을 참조하므로 user의 이메일을 newEmail로 업데이트합니다.
  • main 함수에서는 유저 프로필을 업데이트하고 결과를 출력합니다.

let 함수는 이처럼 null 체크와 동시에 해당 값을 사용할 때 매우 유용합니다.

728x90