Junior — Middle
Kādi darbi ir atļauti ar Map tipa mainīgo, kas vēl nav inicializēts?
sobes.tech AI
Atbilde no AI
Go valodā mainīgajam map tips pēc noklusējuma ir nil, ja tas nav inicializēts.
Ar nil karti ir atļauts veikt šādas darbības:
- Vērtības lasīšana pēc atslēgas — atgriezīs nullvērtību tipā un indikatoru, ka atslēga nepastāv.
- Pārbaudīt atslēgas esamību, izmantojot
value, ok := map[key].
Nepareizas darbības:
- Ieraksts (vērtības piešķiršana atslēgai) izraisīs panic.
- Funkciju izsaukšana, kas maina karti (piemēram,
delete)nilkartē ir droša un nesasniegs panic.
Piemērs:
var m map[string]int // m == nil
v, ok := m["key"] // ok == false, v == 0
// m["key"] = 10 // panic: piešķiršana `nil` kartē
delete(m, "key") // droši, nedara neko
Lai izmantotu karti rakstīšanai, to ir jāinicializē, piemēram, ar make:
m = make(map[string]int)
m["key"] = 10 // tagad darbojas