코틀린의 엘비스 연산자는 ?:
로 나타내며, ?:
의 왼쪽 값이 null
이면 ?:
의 오른쪽 값을 리턴한다.
예를 들어 어떤 문자열의 길이를 구하는 함수를 구현한다고 할 때, 길이를 구하고자 하는 문자열의 null
여부를 if - else로 확인할 수 있다.
fun calculateLength(str: String?): Int {
val length: Int = if (str != null) str.length else -1
return length
}
calculateLength
함수를 임의의 문자열에 적용해보면 다음과 같은 결과를 얻을 수 있다.
fun main(args: Array<String>) {
val notNullString: String? = "Hello Kotlin!"
val nullString: String? = null
println(calculateLength(notNullString)) // 13
println(calculateLength(nullString)) // -1
}
굳이 if - else 조건문으로 분기하여 처리하지 않고, 엘비스 연산자를 사용할 수도 있다.
엘비스 연산자는 연산자의 좌측에 해당하는 값이 null
이 아니면 그 값을 그대로 리턴하고, null
이면 연산자의 오른쪽에 해당하는 값을 리턴한다.
글자수를 구해주는 함수 calculateLength
함수를 아래와 같이 고쳐보자.
fun calculateLength(str: String?): Int {
val length: Int = str?.length ?: -1
return length
}
매개변수 str
은 null
일 수도 있으므로 null safe 호출을 위해 ?
를 붙여주었다. str?.length
가 null
이 아니라면 str.length
를 리턴하고, 그렇지 않은 경우 -1을 리턴한다.
'Study > Kotlin' 카테고리의 다른 글
Kotlin : 파일 입출력 (0) | 2022.02.16 |
---|---|
Kotlin : ArrayList, MutableList, Map (0) | 2022.02.16 |
Kotlin : 상속, 추상클래스, 인터페이스, 오버라이드 (0) | 2022.02.16 |
Kotlin : 클래스와 객체 (0) | 2022.02.16 |
Kotlin : 예외처리, 함수 (0) | 2022.02.16 |