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