Junior — Middle
Care sunt limitările și caracteristicile utilizării cheilor în structura de date map?
sobes.tech AI
Răspuns de la AI
În Go, cheile dintr-un map trebuie să îndeplinească anumite cerințe:
-
Cheia trebuie să fie comparabilă: Aceasta înseamnă că tipul cheii trebuie să suporte operația de comparație
==și!=. De exemplu, tipuri de bază (int, string, bool), pointeri, structuri și array-uri, dacă toate câmpurile lor sunt comparabile. -
Nu se pot folosi slice-uri, map-uri și funcții ca chei: Aceste tipuri nu sunt comparabile și vor cauza o eroare de compilare.
-
Caracteristici:
- Structurile pot fi chei dacă toate câmpurile lor sunt comparabile.
- Dacă o structură conține un câmp de tip slice sau map, nu poate fi o cheie.
-
Performanță: Utilizarea structurilor mari ca chei poate fi ineficientă din cauza copiei.
Exemplu:
m := make(map[string]int) // string este o cheie validă
// Cheie invalidă:
// m2 := make(map[[]int]string) // eroare de compilare
// Structură cu câmpuri comparabile:
type Point struct { X, Y int }
m3 := make(map[Point]string)
m3[Point{1,2}] = "A"
Prin urmare, la alegerea unei chei, este important să se ia în considerare comparabilitatea și imutabilitatea acesteia.