본문 바로가기
프로그래밍/코틀린

코틀린, let 확장 함수을 알아보자

by K-인사이터 2024. 3. 13.
반응형

안녕하세요

K-인사이트 입니다.

 

코틀린에서 let 확장함수는 nullable 과 nullsafe 를 체이닝을 통해서 구현할 수 있는 유용한 기능입니다.

인라인 if-else 의 가독성 문제를 해결하며 직관적으로 코드를 이해할 수 있어 선호됩니다. 

let 확장함수에 대해 알아보고 사용 방법을 배워보겠습니다. 

 

K000. 코틀린 시리즈 (연재물)

안녕하세요 K-IN 입니다. 요즘 코틀린을 이용한 개발 프로젝트가 늘어나고 있습니다. 이에, 코틀린에 대해서 상세하게 정리하는 간행물을 제작하고자 합니다. 여기에 있는 링크들은 모두 코틀린

k-in.tistory.com

 

 

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-인사이트 올림. 

반응형