Åtkomst till element: get, first, last, getOrNull
Hämta element med indexbaserade och funktionella åtkomstfunktioner.
Åtkomst till element: get, first, last, getOrNull är en gratis lektion i Kotlin Academy på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Kotlin Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Kotlin Academy innehåller totalt 4 lektioner.
Många sätt att komma åt element
Kotlin ger dig flera sätt att läsa element: via index ([], get), via position (first, last) och på ett säkert sätt (getOrNull, firstOrNull).
Indexåtkomst med []
get(index). Den kastar IndexOutOfBoundsException om indexet är ogiltigt.
fun main() {
val items = listOf("a", "b", "c")
println(items[0]) // a
println(items[2]) // c
}get jämfört med []
list.get(i) är identiskt med list[i] – olika syntax, samma beteende.
fun main() {
val items = listOf(10, 20, 30)
println(items.get(1)) // 20
println(items[1]) // 20
}getOrNull för säker åtkomst
getOrNull(i) returnerar null i stället för att kasta ett undantag om indexet ligger utanför intervallet.
fun main() {
val items = listOf("x", "y")
println(items.getOrNull(0)) // x
println(items.getOrNull(5)) // null
}getOrElse med ett standardvärde
getOrElse(i) { default } beräknar ett standardvärde vid behov om indexet är ogiltigt.
fun main() {
val items = listOf(1, 2, 3)
println(items.getOrElse(10) { -1 }) // -1
println(items.getOrElse(1) { -1 }) // 2
}first och last
first() och last() returnerar motsvarande element. Båda kastar ett undantag om listan är tom.
fun main() {
val nums = listOf(5, 8, 12)
println(nums.first()) // 5
println(nums.last()) // 12
}firstOrNull / lastOrNull
Varianterna ...OrNull returnerar null i stället för att kasta ett undantag för tomma listor – mycket säkrare.
fun main() {
val empty: List<Int> = emptyList()
println(empty.firstOrNull()) // null
println(empty.lastOrNull()) // null
}Predikatvarianter
first { predicate } returnerar det första matchande elementet. find { predicate } är det nullbara aliaset för firstOrNull { predicate }.
fun main() {
val nums = listOf(3, 7, 8, 11)
println(nums.first { it > 5 }) // 7
println(nums.firstOrNull { it > 100 }) // null
println(nums.find { it > 100 }) // null (same)
}Åtkomst till Map-värden
Map använder samma syntax med [], men den returnerar ett nullbart värde. getValue(key) kastar ett undantag om nyckeln saknas, medan getOrDefault tillhandahåller ett reservvärde.
fun main() {
val ages = mapOf("Alice" to 30, "Bob" to 25)
println(ages["Alice"]) // 30
println(ages["Charlie"]) // null
println(ages.getOrDefault("Z", 0)) // 0
}elementAt och elementAtOrNull
Mängder och andra samlingar utan stöd för index tillhandahåller också elementAt(i) och dess OrNull-variant.
fun main() {
val s = setOf("a", "b", "c")
println(s.elementAt(1)) // b
println(s.elementAtOrNull(10)) // null
}Välj rätt åtkomstfunktion
Föredra de säkra varianterna (getOrNull, firstOrNull, getOrDefault) om du inte kan bevisa att indexet är giltigt. Undantag är kostsamma och lätta att glömma att hantera.
fun headOf(list: List<Int>): Int? = list.firstOrNull()
fun main() {
println(headOf(listOf(1, 2, 3))) // 1
println(headOf(emptyList())) // null
}Snabbkontroll
Vilken åtkomstfunktion returnerar null i stället för att kasta ett undantag när indexet ligger utanför intervallet?
Sammanfattning
Använd []/get för direkt åtkomst (kastar ett undantag vid fel). Föredra getOrNull, firstOrNull, lastOrNull, getOrDefault och getOrElse när gränserna kan vara ogiltiga. Map använder [] för nullbara värden och getValue för åtkomst som kastar ett undantag.
Lär dig Kotlin med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 51
- Lektioner
- 203
Vanliga frågor
Är lektionen ”Åtkomst till element: get, first, last, getOrNull” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Kotlin Academy, inklusive ”Åtkomst till element: get, first, last, getOrNull”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Kotlin Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Åtkomst till element: get, first, last, getOrNull”?
Hämta element med indexbaserade och funktionella åtkomstfunktioner. Ni övar på Kotlin Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Kotlin Academy?
Du behöver inga förkunskaper. Utbildningen i Kotlin Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Åtkomst till element: get, first, last, getOrNull”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Kotlin Academy-lektionen?
Ja. Varje Kotlin Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- listOf, setOf, mapOf: skrivskyddade samlingar
- mutableListOf, mutableMapOf: föränderliga byggare
- Åtkomst till element: get, first, last, getOrNull
- Iterera över och omforma samlingar med standardbiblioteket