Junior — Middle
Vai ir iespējams iegūt vērtību no kartes, kas vēl nav inicializēta?
sobes.tech AI
Atbilde no AI
Go valodā, ja karte (map) nav inicializēta (t.i., ir vienāda ar nil), tad mēģinājums iegūt vērtību pēc atslēgas nesagādās paniku, bet vienkārši atgriezīs nulles vērtību vērtības tipam un booleāna karogu false, norādot, ka atslēga neeksistē.
Piemērs:
var m map[string]int // m == nil
value, ok := m["key"]
fmt.Println(value, ok) // Izvadīs: 0 false
Tomēr, ja mēģināsiet ierakstīt vērtību ne-inicializētā kartē, notiks panika:
m["key"] = 10 // panika: ieraksts nil kartē
Tādēļ, lai droši izmantotu karti, to ir jāinicializē, piemēram, ar make:
m = make(map[string]int)
m["key"] = 10 // tagad darbojas pareizi