Sobes.tech
Junior — Middle

Čo znamená nulová hodnota pre rez v programovacom jazyku?

sobes.tech AI

Odpoveď od AI

V jazyku Go je rez (slice) dynamický poľ, ktorý obsahuje odkaz na pole, dĺžku a kapacitu.

Nulová hodnota rezu je nil. Takýto rez neukazuje na žiadne pole, jeho dĺžka a kapacita sú nulové.

Vlastnosti nulového rezu:

  • Môže byť overený pomocou slice == nil.
  • Pokus o prístup k jeho prvkom povedie k panike.
  • Môže byť použitý ako prázdny rez, napríklad na označenie absencie dát.

Príklad:

var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
fmt.Println(cap(s))   // 0

// Bezpečne možno inicializovať prázdny rez:
s = []int{}
fmt.Println(s == nil) // false
fmt.Println(len(s))   // 0

Takže, nulová hodnota rezu je nil, čo sa líši od prázdneho rezu, ale nie od nil rezu.