Ce face List.indices
lista.indices întoarce intervalul 0..size - 1. Se folosește în bucle (for (i in lista.indices)) și pentru verificări (i in lista.indices). Pentru o listă goală, intervalul este gol, deci bucla nu se execută.
lastIndex este size - 1: poziția ultimului element. Pentru o listă goală este -1. Este util în comparații de felul „este ultimul element?” sau în parcurgeri de la coadă: for (i in lista.lastIndex downTo 0).
Ce returnează
indices: IntRange. lastIndex: Int.
Exemple
Exemplul 1: Separator doar între elemente
Nu punem săgeată după ultimul oraș: comparăm poziția cu lastIndex.
fun main() {
val opriri = listOf("Iași", "Vaslui", "Bârlad", "Tecuci")
println("indices = ${opriri.indices}, lastIndex = ${opriri.lastIndex}")
for (i in opriri.indices) {
print(opriri[i])
if (i != opriri.lastIndex) print(" -> ")
}
println()
}
Rezultat
indices = 0..3, lastIndex = 3
Iași -> Vaslui -> Bârlad -> Tecuci
Exemplul 2: Parcurgere de la coadă și comparare cu vecinul
Parcurgem invers cu downTo, apoi comparăm fiecare zi cu cea de dinainte.
fun main() {
val curs = listOf(4.97, 4.98, 4.96, 4.99)
for (i in curs.lastIndex downTo 0) print("${curs[i]} ")
println()
for (i in curs.indices) {
if (i == 0) continue
val dif = if (curs[i] > curs[i - 1]) "crește" else "scade"
println("Ziua ${i + 1}: $dif")
}
println(emptyList<Int>().lastIndex)
}
Rezultat
4.99 4.96 4.98 4.97
Ziua 2: crește
Ziua 3: scade
Ziua 4: crește
-1
Greșeli frecvente
- Scrii
for (i in 0..lista.size): ultima valoare (size) nu este o poziție validă. Foloseșteindices.
Comenzi înrudite
Array.size: size spune câte elemente are tabloul; indices dă intervalul pozițiilor valide, de la 0 la size – 1.Iterable.withIndex: Pune lângă fiecare element poziția lui, ca perechi (index, valoare), utile în bucle for.List.getOrNull: Citește elementul de la o poziție fără risc: getOrNull dă null, getOrElse o valoare implicită când poziția nu există.Iterable.first: first/last întorc primul sau ultimul element (sau primul care îndeplinește o condiție); variantele OrNull dau null în loc de excepție.