`?:`와 `?.let`
둘 다 코틀린에서 널 값을 다룰 때 사용하는 방법이지만, 용도와 동작 방식이 조금 다릅니다.
- `?:`는 null일 때 기본 값을 반환
- `?.let`은 null이 아닐 때만 특정 작업을 실행
-> ?:는 항상 값을 반환하지만, ?.let은 null이 아닐 때만 블록을 실행
1. ?: (엘비스 연산자)
- 용도: 변수의 값이 null일 때 대체값을 제공할 때 사용합니다.
- 동작 방식: 좌변의 값이 null이면 우변의 값을 반환하고, 그렇지 않으면 좌변의 값을 반환합니다.
val x: String? = null
val result = x ?: "default value"
println(result) // 출력: default value
2. ?.let (안전 호출과 함께 사용하는 let 함수)
- 용도: 변수의 값이 null이 아닐 때만 특정 작업을 수행하고 싶을 때 사용합니다.
- 동작 방식: 값이 null이 아닐 때만 let 블록을 실행하며, let 블록 내에서는 it을 통해 해당 값을 사용할 수 있습니다.
val x: String? = "Hello"
x?.let {
println(it) // 출력: Hello
}
'코틀린' 카테고리의 다른 글
[코틀린 Kotlin] GroupBy 함수 (2) | 2024.09.08 |
---|---|
[코틀린 Kotlin] 컬렉션 - 읽기전용 - listOf(), setOf(), mapOf() vs 변경 가능한 - mutableListOf(), mutableSetOf(), mutableMapOf() (1) | 2024.09.08 |
[코틀린 Kotlin] StringBuilder - 문자열 수정/결합 시 기존 버퍼를 수정하는 클래스 (1) | 2024.09.07 |
[코틀린 Kotlin] lines - 줄 단위로 split 하여 리스트로 반환 (0) | 2024.09.07 |
[코틀린 Kotlin] 조건식, 변수 값 비교에 따른 when 표현식 (0) | 2024.09.07 |