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