Nullable (? , !!, ?:)
kotlin에서 nullable이라는 것을 지원함
var b : String? = "xyz" //nullable
위의 b라는 변수는 null이 올 수도 있다는 것이다
var b : String? = "xyz" //nullable
println(b.length)
그렇다면 null도 아니겠거니 b의 길이를 무작정 출력해 보려한다면 에러가 난다,
nullable하기때문에 완전히 믿지 못한다라는 것이다.
println(b?.length)
그래서 이렇게 ? 를 붙여주면 해당 변수가 null 이 아닐때 출력하고 null이라면 null을 출력하게 된다.
이것을 safe Call 이라고 한다.
그렇다면 nul이던 아니던 상관없이 무조던 출력하고 싶다면 !! 이라는 것을 붙여주면 된다.
println(b!!.length)
하지만 이것은 null 에 safe하지 못하기 때문에 권장사항은 아니다.
만약 sage Call 을 하였는데 null일때 어떤일을 수행하고 싶으면 Elvis연산자를 수행하면 된다.
println(b?.length ?: "b length를 알 수 없음")
?: 이것이 Elvis 연산자 인데 null일경우 ?: 뒷편을 수행한다.
'kotlin' 카테고리의 다른 글
For문 (0) | 2018.12.06 |
---|---|
Array (0) | 2018.12.06 |
Any , 타입변환 (0) | 2018.12.06 |
asList와 toList (0) | 2018.12.04 |
Kotlin의 유용한 함수 - let, apply, run, with (0) | 2018.12.04 |