반응형
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
'Android 개발 > Kotlin' 카테고리의 다른 글
compareBy 와 min 그리고 sortedWith 사용방법에 대한 정리 (0) | 2023.05.10 |
---|---|
any , contains, none , all, containsAll 에 대한 정리 # Kotlin list 존재여부 확인 (1) | 2023.05.06 |
Destructuring declaration 에 대해 알아보자 # 구조분해 선언 Kotlin (0) | 2023.05.01 |
Kotlin Escape 에 대한 정리 # RawString Escaped String Literal (0) | 2023.04.30 |
Kotlin GroupBy 구현과 정리 # List 그룹핑 (0) | 2023.04.28 |
Kotlin Pair 와 Map 함수 이용해서 데이터 가공하기 (0) | 2023.04.26 |
Kotlin custom getter 와 setter 구현하기 (0) | 2023.04.11 |
isNullOrEmpty 와 isNullOrBlank 의 차이점 # Kotlin (0) | 2023.04.09 |
lateinit 에 관한 정리 # Kotlin (0) | 2023.04.07 |
Elvis 연산자 의 활용법 총정리 # null 체크 throw (0) | 2023.01.15 |
댓글