Android 개발/Kotlin
getOrNull 과 getOrElse 에 대한 정리 # List Kotlin
Developer88
2023. 4. 28. 14:57
반응형
Kotlin에는 편리한 함수들이 정말 많은데요.
오늘은 Kotlin 의 getOrNull 과 getOrElse 에 대해서 정리해 보도록 하겠습니다.
1. getOrNull () 과 getOrElse()
1-1. getOrNull
주어진 Index에 대해서 엘리먼트가 있으면 반환해주고,
해당 index가 범위내에 없으면 null 을 반환해 주는 Kotlin Collections 의 list 입니다.
이 함수를 사용하면 이제 아래와 같은 Exception 들과는 더이상 볼 일이 없게 됩니다.
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
1-2. getOrElse
위에서는 아이템이 없으면, Null을 반환해 주었는데요.
getOrElse()를 이용하면, 특정 값을 정해서 반환하도록 할 수 있습니다.
val numbers = listOf(1, 3, 5, 8)
val number = numbers.getOrElse(6, -888)
println(number) // -888 출력됨
아래와 같이 람다 식 안에서 로그를 찍게 할 수도 있습니다.
val numbers = listOf(1, 3, 5, 8)
val number = numbers.getOrElse(6) {
Log.d(TAG, "item out of bounds: -888")
-888
}
println(number) // -888 출력됨
2. before and after
getOrNull 을 사용하기 전과 후 코드를 비교해 보도록 하겠습니다.
먼저 사용하기 전 코드를 보도록 하겠습니다.
아래는, userNickList라는 리스트에서 2번째 아이템이 있는지 확인해 봐서,
있으면 그 값을 얻어오는 코드인데요.
var secondNick: String? = null
if(userNickList.size >= 2){
secondNick = userNickList.second[1]
}
getOrNull()함수를 이용하면 아래 1줄로 해결이 가능해 집니다.
val secondNick = userNickList.getOrNull(1)
코드가 훨씬 간결해지고, 읽고 이해하기도 좋아졌습니다.
728x90