본문 바로가기

소프트웨어/Kotlin

Kotlin let을 이용한 Null check 구문

Kotlin에서는 표준 라이브러리 중 let으로 null check절을 좀 더 간단하게 작성할 수 있다.

 

if(myNullable != null) { } 구문

var myNullable = null
val res = myNullable?.let { it -> 
    // 널이 아닐 때 실행코드
}

 

 

if(myNullable == null) 구문 (한 줄)

var myNullable = null
val res = myNullable ?: "abcd" // 이 경우 res에 "abcd"가 할당된다.
val res = myNullable ?: myFunction() // 이 경우 res에 kotlin.Unit가 할당된다.

 

 

 

if(myNullable == null) { } 구문 (블럭)

var myNullable = null
myNullable ?: {
    // 실행 코드 
} ()
myNullable ?: {
    // 실행 코드 
}.invoke()
myNullable ?: fun () {
    // 실행 코드  
} ()
myNullable ?: fun () {
    // 실행 코드 
}.invoke()
myNullable ?: run {
    // 실행 코드 
}

 

 

 

위를 조합한 if(myNullable != null) { } else { } 구문은 다음과 같이 적을 수 있다.

var myNullable = null
val res = myNullable?.let {
    // 널이 아닌 경우
} ?: {
    // 널인 경우
} ()
var myNullable = null
val res = myNullable?.let {
    // 널이 아닌 경우
} ?: {
    // 널인 경우
} ()
var myNullable = null
val res = myNullable?.let {
    // 널이 아닌 경우
} ?: run {
    
}
var myNullable = null
val res = myNullable?.let {
    // 널이 아닌 경우
} ?: fun() {
    
} ()  // ()대신 invoke()로 호출할 수 있다.