Sobes.tech
Junior

Kā pareizi deklarēt karti (map) Go valodā?

sobes.tech AI

Atbilde no AI

Kartes var paziņot vairākos veidos:

  1. Izmantojot var:

    // kartes paziņošana bez inicializācijas
    // vērtība nil
    var myMap map[string]int
    
  2. Izmantojot make:

    // tukšas kartes paziņošana un inicializācija
    myMap := make(map[string]int)
    
    // kartes paziņošana un inicializācija ar noteiktu ietilpību
    // var uzlabot veiktspēju, ja ir daudz elementu
    myMapWithCapacity := make(map[string]int, 100)
    
  3. Izmantojot literālu:

    // ar sākotnējām vērtībām
    myMapWithValues := map[string]int{
        "atslēga1": 1,
        "atslēga2": 2,
    }
    
    // tukšas kartes paziņošana un inicializācija
    // ekvivalents ar make(map[string]int)
    emptyMapLiteral := map[string]int{}
    

Atšķirības starp metodēm:

Metode Noklusējuma inicializācija Iespēja iestatīt ietilpību Sākotnējo vērtību pievienošana
var nil
make Tukša karte
Literāls {} Tukša karte

Svarīgi atcerēties, ka karte, kas paziņota ar var bez inicializācijas (nil), nevar tikt izmantota, lai pievienotu vai iegūtu elementus. Šāda darbība izraisīs kļūdu. To ir jāinicializē ar make vai literālu.