Sobes.tech
Junior — Middle

Ce tipuri de date sunt permise ca chei pentru structura map?

sobes.tech AI

Răspuns de la AI

În Go, cheile pentru map pot fi doar acele tipuri de date care suportă operația de comparație (comparabile). Aceasta înseamnă că cheile pot fi:

  • Valori booleene (bool)
  • Numere (int, float, complex etc.)
  • Șiruri de caractere (string)
  • Poinți
  • Interfețe, dacă tipul dinamic suportă comparația
  • Structuri, dacă toate câmpurile lor sunt comparabile

Nu se pot folosi slice-uri, hărți, funcții și alte tipuri necomparabile ca chei, deoarece acestea nu suportă operatorul ==.

Exemplu:

m := make(map[string]int)
m["key"] = 42

// Struct cu câmpuri comparabile
type Point struct {
    X, Y int
}

m2 := make(map[Point]string)
m2[Point{1,2}] = "Un punct"