소프트웨어/Kotlin
Kotlin let을 이용한 Null check 구문
이로이로
2019. 7. 1. 16:43
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()로 호출할 수 있다.