Junior — Middle
Mi történik, ha létrehozol egy szeletet null értékkel, és milyen műveletek megengedettek vele?
sobes.tech MI
Válasz az MI-től
Go nyelvben egy null értékű szelet (slice) egy nil szelet. Nem mutat semmilyen tömbre, és hossza, kapacitása nulla.
Egy ilyen szelettel a következő műveletek megengedettek:
- Hossz és kapacitás lekérdezése (
len(slice) == 0,cap(slice) == 0) - Iterálás a szelet felett (a ciklus egyszerűen nem fog lefutni)
- Elem hozzáadása
append-tel, ami egy új szeletet hoz létre lefoglalt memóriával
Példa:
var s []int // nil szelet
fmt.Println(s == nil) // true
fmt.Println(len(s)) // 0
s = append(s, 1) // most már nem nil, tartalmaz egy elemet
Nem lehet index szerint elérni az elemeket, mert a szelet üres, és ez pánikot okoz.