코틀린에서 null 체크
var str : String? = "abc"
public boolean start(str : String):Boolean? {
...//
return null
}
- null이 들어 올 수 있는 변수에는 타입 뒤에 ? 를 붙여 표시한다.
- 함수에서 파라미터나 리턴 타입에도 nullable이면? 표시를 해줘야 한다.
- 표시가 되어있지 않고, null을 반환한다면 컴파일 에러가 발생한다.
코틀린에서는 null이 가능한 타입을 완전히 다르게 취급한다.
Safe call 관 Elvis연산자
val str : String ?= "abc"
str.length //불가능
str?.length //가능 safe call
- null이 아니면 실행하고 null이면 실행하지 않는다(그대로 null)
str?.length ?: 0 //?: - elvis 연산자
- 앞의 연산 결과가 null이면 뒤의 값을 사용
fun Start(str : String?) : Boolean {
return str?.startsWith("A")
?: throw IllegalArgumentException("null")
}
if (null == 0) return 0;
->
number ?: return 0
- safe call과 elvis 연산자를 통해 exception을 발생시킬 수도 있음
- early return에도 적용 가능