1. ?
- Nullable 가능하게 만듦
val a: String? = null
val b: String = "hello world"
//val c: String = null // 에러 : null을 허용하지 않는 값에 null을 대입할 수 없음
2. ?.
- null이 아니면 값 반환하고 그렇지 않으면 null 리턴
val a: String? = null
val b: String = "hello world"
println(b?.length) // 10
println(a?.length) // null 리턴
3. ?:
- 왼쪽에 있는 표현식이 null 이 아니면 반환, 그렇지 않으면 오른쪽 반환
- 엘비스 연산자는 주로 nullable한 타입에 사용
val length = a?.length ?: 0 // 0
4. as?
- as 시도가 성공하지 못한 경우 null 리턴
val b: String = "hello world"
val bar: Int? = b as? Int
println(bar) // null
5. !!
- 강제로 null 아님 선언
fun ignoreNulls(s: String?) {
val sNotNull: String = s!!
println(sNotNull.length)
}
fun main(args: Array) {
ignoreNulls(null) // null point 에러 발생
}
'기술면접' 카테고리의 다른 글
Java와 Kotlin 차이 (0) | 2024.01.19 |
---|---|
비동기 프로그래밍 (1) | 2024.01.04 |
예외 (1) | 2024.01.04 |
Kotlin 정적 타입 언어 (1) | 2024.01.04 |