본문 바로가기

kotlin

Nullable (? , !!, ?:)

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