fun startsWithA(str: String): Boolean {
return str.startsWith("A")
}
: str 뒤에 물음표(?) 연산자가 없어, null이 들어오지 않음을 보장해주므로, startsWith()라는 함수를 불러올 수 있다.
fun startsWithA(str?: String): Boolean {
return str.startsWith("A")
}
: str 뒤에 물음표(?) 연산자가 있어, str에 null이 들어올 수 있으므로, startsWith() 함수를 바로 불러올 수 없다.
🔎 물음표(?) 연산자
: 기본적으로 변수(프로퍼티)에null값이 들어갈수 없기 때문에,null을 허용한다는 의미의?을 변수 선언 시 붙여준다.
안전하게 불러오는 것을 의미한다.
?. 을 통해 null 이 들어올 수 있는 값이 npe이 발생하지 않도록 한다.
null이 아니면 실행하고, null이면 null을 반환환다.
val str1: String? = "ABC"
val str2: String? = null
println(str1?.length) //-> 3
println(str2?.length) //-> null
Elvis 연산자 뒤의 값을 사용한다.?: 형태val str: String? = "ABC"
str?.length ?: 0 // str이 null이면 0을 반환
?:를 시계 방향으로 돌려보면 엘비스 프레슬리의 머리 모양을 닮아서 엘비스 연산자라고 부른다고 한다.. 🤓
Kotlin에서 예외 처리 하기(Safe Call과 Elvis 연산자 활용)
Java 개발자의 Kotlin 기본 문법 정복기