Junior
Kā pareizi deklarēt karti (map) Go valodā?
sobes.tech AI
Atbilde no AI
Kartes var paziņot vairākos veidos:
-
Izmantojot
var:// kartes paziņošana bez inicializācijas // vērtība nil var myMap map[string]int -
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) -
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 |
Nē | Nē |
make |
Tukša karte | Jā | Nē |
Literāls {} |
Tukša karte | Nē | Jā |
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.