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.