Ce face arrayOfNulls
arrayOfNulls<String>(5) creează un tablou cu 5 poziții, toate null. Tipul elementelor este String?, pentru că fiecare poziție poate fi goală. Este util când știi câte locuri ai nevoie, dar valorile vin mai târziu (de exemplu locurile dintr-o sală).
emptyArray<T>() întoarce un tablou de dimensiune 0, de exemplu ca rezultat al unei funcții care nu a găsit nimic.
Pentru un tablou plin cu o valoare sau calculat după poziție se folosește constructorul: Array(5) { "liber" }, IntArray(5) { it * it }.
Parametri
| Parametru | Descriere |
|---|---|
dimensiune |
Numărul de poziții ale tabloului (nu poate fi negativ). |
Ce returnează
Array<T?> cu toate elementele null, respectiv un Array<T> gol.
Exemple
Exemplul 1: Locuri într-o sală
La început toate locurile sunt null (libere). Când rezervăm, scriem numele persoanei pe poziția locului.
fun main() {
val locuri = arrayOfNulls<String>(5)
locuri[1] = "Ana"
locuri[3] = "Mihai"
println(locuri.contentToString())
for (i in locuri.indices) {
println("Locul ${i + 1}: ${locuri[i] ?: "liber"}")
}
}
Rezultat
[null, Ana, null, Mihai, null]
Locul 1: liber
Locul 2: Ana
Locul 3: liber
Locul 4: Mihai
Locul 5: liber
Exemplul 2: emptyArray și constructorul Array
emptyArray are dimensiunea 0. Constructorul Array(n) { ... } calculează fiecare element din poziția lui.
fun main() {
val nimic = emptyArray<String>()
val patrate = Array(5) { i -> i * i }
val mese = Array(3) { i -> "Masa ${i + 1}" }
println("${nimic.size} ${nimic.contentToString()}")
println(patrate.contentToString())
println(mese.contentToString())
}
Rezultat
0 []
[0, 1, 4, 9, 16]
[Masa 1, Masa 2, Masa 3]
Greșeli frecvente
- Folosești elementele unui
arrayOfNullsfără să verificinull: compilatorul te obligă să scrii?.,?:sau!!. - Scrii
emptyArray()fără tip și fără context: tipul nu poate fi dedus.
Comenzi înrudite
arrayOf: Creează un tablou (Array) cu dimensiune fixă din elementele date; intArrayOf creează un tablou de Int primitive.Array.size: size spune câte elemente are tabloul; indices dă intervalul pozițiilor valide, de la 0 la size – 1.emptyList: Întoarce o listă, un map sau o mulțime goală, doar pentru citire; util ca valoare implicită sau rezultat „nimic găsit”.