Sobes.tech
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) nil kartē 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