Kotlin에서의 null 체크
- 코틀린에서는 NullPointerException을 방지하기 위해 일반적인 자료형은 null이 될 수 없도록 되어있다.
- null을 허용하기 위해서는 자료형 뒤에 ? 를 붙여줘야 한다.
fun startsWith(str: String?): Boolean { if(str == null) { throw IllegalArgumentException("값이 null 입니다.") } return str.startsWith("A") }
Safe Call과 Elvis 연산자
- safeCall : null이 아니면 실행되고, null이면 실행하지 않는다.
fun startsWidthA1(str: String?):Boolean? { // safe Call 연산자를 사용 return str?.startsWith("A") }
- Elvis : 앞의 연산 결과가 null이면 뒤의 값을 사용한다.
val str: String? = "ABC" str?.length ?: 0
- safeCall과 Elvis 연산자를 혼합해서 사용할 수도 있다.
fun startsWith(str: String?): Boolean { return str?.startsWith("A") ?: false }
- Elvis 연산은 early return에도 사용할 수 있다.
fun calculate(number: Long?): Long { number ?: return 0 }
널 아님 단언 !!(not-null assertion)
- nullable type이지만, 널이 될 수 없는 경우 !! 를 명시해 준다.
- 주의할 점은 널 아님을 단언 후 !! 지정한 값에 null이 들어갈 경우 NullPointException이 발생한다.
- 개발자가 논리적으로 절대 null이 발생할 수 없는 상황을 제외하고서는 선언하지 않는 편이 좋다.
fun startsWith(str : String?) Boolean { // 널아님단언(!!) : str은 null이 아님을 알린다 return str!!.startsWith("A") }
'BackEnd > Kotlin' 카테고리의 다른 글
[Kotlin] Lec01. 코틀린에서 변수를 다루는 방법 (0) | 2024.02.21 |
---|