Junior — Middle
Milyen műveletek megengedettek egy még nem inicializált Map típusú változóval?
sobes.tech MI
Válasz az MI-től
Go nyelvben egy map típusú változó alapértelmezés szerint nil értéket kap, ha nem inicializálták.
Egy nil map esetén a következő műveletek megengedettek:
- Érték olvasása kulcs alapján — ez a típus nullértékét és egy kulcs hiányát jelző zászlót ad vissza.
- Ellenőrizni a kulcs létezését az
value, ok := map[key]segítségével.
Nem megengedett műveletek:
- Írás (érték hozzárendelése kulcshoz) panic-hez vezet.
- Függvényhívások, amelyek módosítják a térképet (pl.
delete) egyniltérképen biztonságosak és nem okoznak panic-et.
Példa:
var m map[string]int // m == nil
v, ok := m["key"] // ok == false, v == 0
// m["key"] = 10 // panic: nil mapbe írás
delete(m, "key") // biztonságos, nem csinál semmit
A térkép írásra való használatához inicializálni kell, például a make segítségével:
m = make(map[string]int)
m["key"] = 10 // most már működik