Middle
Ce tipuri de date pot fi utilizate ca chei?
sobes.tech AI
Răspuns de la AI
În Go, cheile dintr-un map pot fi doar de tipuri care suportă operația de comparație (==). Acest lucru se datorează faptului că, pentru a căuta o cheie într-un tabel hash, este necesar să compari cheile pentru egalitate.
Tipuri care pot fi folosite ca chei:
- Tipuri primitive:
int,float64,string,booletc. - Poinți
- Structuri, dacă toate câmpurile lor sunt comparabile
- Array-uri, dacă elementele sunt comparabile
Tipuri care nu pot fi folosite ca chei:
- Slicing (
slice) - Map-uri (
map) - Funcții
Acest lucru se datorează faptului că aceste tipuri nu suportă comparația cu ==.
Exemplu:
m := make(map[string]int)
m["key"] = 42
// Structură cu câmpuri comparabile
type Point struct {
X, Y int
}
m2 := make(map[Point]string)
m2[Point{1, 2}] = "Un punct"
Dacă încerci să folosești un slice sau un map ca și cheie, compilatorul va genera o eroare.