Sobes.tech
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