Home
Kotlin
Kotlin firstOrNull, lastOrNull
devfoxstar
devfoxstar
March 20, 2023
1 min

Table Of Contents

01
first, last
02
firstOrNull
03
lastOrNull
04
활용
05
참고

first, last


먼저 first, last 메서드를 알아보겠습니다.
리스트의 처음과 끝의 값을 가져오는 간단한 기능입니다.

val list = listOf(1, 2, 3)

println(list.first())   // 1
println(list.last())    // 3

firstOrNull


firstOrNull 공식 문서입니다.

# kotlin.text

fun CharSequence.firstOrNull(): Char?
(source)

inline fun CharSequence.firstOrNull(
    predicate: (Char) -> Boolean
): Char?
(source)

# kotlin.collections

fun <T> Array<out T>.firstOrNull(): T?
(source)

inline fun <T> Array<out T>.firstOrNull(
    predicate: (T) -> Boolean
): T?
(source)

lastOrNull


lastOrNull 공식 문서입니다.

# kotlin.text

fun CharSequence.lastOrNull(): Char?
(source)

inline fun CharSequence.lastOrNull(
    predicate: (Char) -> Boolean
): Char?
(source)
# kotlin.collections

fun <T> Array<out T>.lastOrNull(): T?
(source)

inline fun <T> Array<out T>.lastOrNull(
    predicate: (T) -> Boolean
): T?
(source)

활용


firstOrNull이나 lastOrNull을 단순하게 쓰면 그다지 의미가 없습니다.

val list = listOf(1, 2, 3)

println(list.firstOrNull()) // 1
println(list.lastOrNull())  // 3

물론 값이 비어 있으면 오류를 사전에 방지해 줍니다.

var emptyString = ""
println(emptyString.first())

Exception in thread "main" java.util.NoSuchElementException: Char sequence is empty.
var emptyString = ""
println(emptyString.firstOrNull())    // null

조건이 추가되면 더욱 유용하게 활용할 수 있습니다.
원래 조건에 맞는 값이 없다면, 오류가 발생합니다.

val list = listOf(1, 2, 3)
println(list.first{ it < 1 })

Exception in thread "main" java.util.NoSuchElementException: List contains no element matching the predicate.

firstOrNull을 사용하면 오류가 발생하지 않고 null값이 떨어집니다.
lastOrNull도 마찬가지 입니다.

val list = listOf(1, 2, 3)
println(list.firstOrNull{ it > 3 }) // null
val list = listOf(1, 2, 3)
println(list.lastOrNull{ it < 1 }) // null

참고


아래 페이지에서 자세한 내용을 확인할 수 있습니다.

  • https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/first-or-null.html
  • https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/last-or-null.html
  • https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/first-or-null.html
  • https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/last-or-null.html

Tags

#Kotlin#firstOrNull#lastOrNull

Related Posts

Kotlin - invoke 함수
May 29, 2023
1 min
© 2024, All Rights Reserved.

Quick Links

About Me

Media