반응형
안녕하세요
K-인사이트 입니다.
코틀린에서 let 확장함수는 nullable 과 nullsafe 를 체이닝을 통해서 구현할 수 있는 유용한 기능입니다.
인라인 if-else 의 가독성 문제를 해결하며 직관적으로 코드를 이해할 수 있어 선호됩니다.
let 확장함수에 대해 알아보고 사용 방법을 배워보겠습니다.
let 확장 함수란?
Kotlin 표준 라이브러리에서 제공하는 확장함수 중 하나입니다.
함수형 프로그래밍에서 자주 사용되며 널이 아닌 객체를 다룰 때 유용합니다.
특히 객체에 대해 연속적으로 작업을 수행할 수 있다는 특성이 있습니다.
let 함수의 기본형은 다음과 같은 구조를 가집니다.
object?.let {
it -> // 코드
}
// 또는 it 을 생략 가능 (it 은 암시적으로 선언되므로 코드 블록 내에 작성이 가능
object?.let {
// 코드
}
object 는 nullable 객체입니다. 따라서, ?. 을 통해 null-safe 하게 처리할 수 있습니다.
즉, object 가 null 이면 let 함수는 실행되지 않습니다.
let 확장 함수 활용 예시
좀더 구체적인 예시로 데이터 클래스를 생성하여 null 인경우와 그렇지 않은 경우를 살펴보겠습니다.
- User 객체의 name 속성이 null 이 아닐 경우 let 확장 함수가 실행됩니다.
- 만약, null 일 경우에는 엘비스 연산자(?:)를 통해서 run 함수가 실행됩니다.
data class User(val name: String?)
val user1 = User("John")
val user2 = User(null)
user1.name?.let {
val lowercaseName = it.lowercase(Locale.getDefault())
println("Lowercase name: $lowercaseName, Length: ${lowercaseName.length}")
true
} ?: run {
println("Name is null or empty")
false
}
user2.name?.let {
val lowercaseName = it.lowercase(Locale.getDefault())
println("Lowercase name: $lowercaseName, Length: ${lowercaseName.length}")
true
} ?: run {
println("Name is null or empty")
false
}
플레이그라운드를 통해 실습
오늘 배운 내용을 실제로 구동해보고 결과를 확인해보세요.
이상입니다.
K-인사이트 올림.
반응형
'프로그래밍 > 코틀린' 카테고리의 다른 글
코틀린, 정적 멤버와 컴패니언 객체(companion object) (5) | 2024.03.07 |
---|---|
코틀린, data 키워드와 데이터 클래스 (4) | 2024.03.07 |
K017. 코틀린 함수(Functions) 깊게 살펴보기 - Functions 파트8, 람다(Lambdas) 3 (79) | 2024.03.07 |
K016. 코틀린 함수(Functions) 깊게 살펴보기 - Functions 파트7, 람다(Lambdas) 2 (85) | 2024.03.05 |
K015. 코틀린 함수(Functions) 깊게 살펴보기 - Functions 파트6, 람다(Lambdas) 1 (109) | 2024.02.16 |