Sobes.tech
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.