let 함수:
let
은 Kotlin의 스코프 함수 중 하나입니다. 주로 아래와 같은 경우에 사용됩니다:
- 객체의 컨텍스트 내에서 연산을 수행할 때
- 널이 아닌 값으로 연산을 수행하려 할 때 (
?.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
'Language > Kotlin' 카테고리의 다른 글
Kotlin의 'All' 함수에 대해 (0) | 2023.09.15 |
---|---|
Kotlin의 `any` 함수란? (0) | 2023.09.15 |
그래들 설정 settings.gradle.kts에 대해 (0) | 2023.09.13 |
DSL (Domain-Specific Language)이란? | feat. Kotlin DSL, build.gradle.kts 예시 코드) (0) | 2023.09.13 |
Gradle, Spring, Kotlin 환경에서의 build.gradle.kts 내 tasks 이해하기 (0) | 2023.09.13 |