Junior — Middle
Ce tipuri de date pot acționa ca cheie într-un container map?
sobes.tech AI
Răspuns de la AI
În Go, cheia într-un map poate fi doar de tipuri de date comparabile (comparable). Asta înseamnă că operatorul == trebuie să fie definit pentru cheie.
Tipuri de chei potrivite:
- Valori booleene (
bool) - Numere (
int,float64,uint8etc.) - Șiruri (
string) - Poinți
- Canale
- Interfețe, dacă tipul dinamic este comparabil
- Structuri, dacă toate câmpurile sunt comparabile
Nu pot fi folosite ca cheie:
- Slici (
slice) - Mapuri (
map) - Funcții
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 tip necomparabil ca și cheie, compilatorul va da o eroare.