[Kotlin] nullable

델버·2022년 5월 23일
0

Kotlin

목록 보기
10/18

nullable

  • null 값을 가질 수 있다.
  • kotlin에서 null 값을 넣을 수 없는 변수에 null 값을 넣으려 할 때, 컴파일러에서 null pointer exception을 던진다.
  • ex)
fun main() {
	var a : String = "Kotlin"
	a = null // error 
	var b : String? = "Kotlin"
	b = null // error가 나지 않음 b는 nullable이 됨

}
  • var 변수 : Type? = null : type 뒤에 ?를 붙여줌으로 nullable이 된다.
fun main() {
	var a : String = "Kotlin"
	a = null // error 
	var b : String? = "Kotlin"

	var length_a = a.length
	var length_b = b.length // error
}
  • 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()) // error   
}
  • 변수의 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

0개의 댓글