nullable
- null 값을 가질 수 있다.
- kotlin에서 null 값을 넣을 수 없는 변수에 null 값을 넣으려 할 때, 컴파일러에서 null pointer exception을 던진다.
- ex)
fun main() {
var a : String = "Kotlin"
a = null
var b : String? = "Kotlin"
b = null
}
var 변수 : Type? = null
: type 뒤에 ?
를 붙여줌으로 nullable이 된다.
fun main() {
var a : String = "Kotlin"
a = null
var b : String? = "Kotlin"
var length_a = a.length
var length_b = b.length
}
- nullable로 된 변수는 length를 하기에 불안정하다는 것이다.
- 방법 1 - if 조건으로 null인지 아닌지 검사한다.
if (b != nul) {
var length_b = b.length
} else {
null
}
- 방법2 - 훨신 더 좋음!
var 변수 = nullable변수?.length
: nullable변수명 뒤에 ?
를 붙인다.
var length_b = b?.length
fun main() {
var a : String? = "Kotlin"
a = null
println(a?.toLowerCase())
}
- 변수의 property는 해결이 되었지만 method는
a = null
로 인해 error가 난다. 이때 let
을 사용한다.
let (null check)
fun main() {
var a : String? = "Kotlin"
a = null
a?.let {
println(it.length)
}
}
변수?.let { 실행문 }
: let
을 이용해 변수가 null인지 검사를 하고 실행문을 시킨다. 이때 변수를 지칭하는 변수는 it
으로 사용한다.
- 참고 - let으로 null check하는 것에 대한 글이 담겨있어서 가져왔다. 여러 null check 상황에 예시로 자세히 들어서 let 아닌 다른 방식으로 설명해주셨다.
https://tourspace.tistory.com/208