Sobes.tech
Junior — Middle

Mi a különbség a null értékű térkép és a null értékű szelet között?

sobes.tech MI

Válasz az MI-től

Go nyelven egy térkép (map) nullértéke egy olyan térkép, amely nincs inicializálva, és nil értékű. Egy ilyen térképre íráskor pánik lép fel.

Egy nullértékű szelet (slice) egy nil-szelet, amely nem mutat egy tömbre, és hossza, valamint kapacitása 0. Biztonságosan használható, például olvasásra vagy függvényeknek való átadásra.

Fő különbségek:

  • map == nil azt jelenti, hogy a térkép nincs inicializálva, és nem fogad el elemeket.
  • slice == nil azt jelenti, hogy a szelet üres, és nem mutat tömbre, de olvasásra (üres lesz) és átadásra használható.

Példa:

var m map[string]int // m == nil
// m["key"] = 1 // pánik: értékadás nil térképhez

var s []int // s == nil
fmt.Println(len(s)) // 0
s = append(s, 1) // most a szelet inicializálva van

Így a nil-térkép nem alkalmas írásra, míg a nil-szelet biztonságos olvasásra és bővítésre.