Junior — Middle
Lehet-e értéket kivenni egy térképből, amely még nem lett inicializálva?
sobes.tech MI
Válasz az MI-től
Go-ban, ha egy térkép (map) nincs inicializálva (azaz nil), akkor a kulcs szerinti érték lekérése nem fog pánikot okozni, hanem egyszerűen a típus alapértelmezett értékét és egy false logikai zászlót ad vissza, jelezve, hogy a kulcs hiányzik.
Példa:
var m map[string]int // m == nil
value, ok := m["key"]
fmt.Println(value, ok) // Kiírja: 0 false
Azonban, ha megpróbálsz értéket írni egy nem inicializált térképre, pánik fog keletkezni:
m["key"] = 10 // pánik: értékadás egy nil mapbe
Ezért, a térkép biztonságos 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 helyesen működik