Junior — Middle
Poate fi utilizate structurile ca chei într-un array asociativ sau mapă?
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 (operatorul ==). Structurile pot fi folosite ca chei dacă toate câmpurile lor sunt comparabile. De exemplu, dacă o structură conține doar tipuri de bază (int, string etc.), poate fi folosită ca cheie. Dacă însă structura conține slices, hărți sau funcții, nu poate fi folosită ca cheie.
Exemplu:
package main
import "fmt"
type Point struct {
X, Y int
}
func main() {
m := make(map[Point]string)
p := Point{X: 1, Y: 2}
m[p] = "punct"
fmt.Println(m[p]) // ieșire: punct
}
Dacă structura conține câmpuri necomparabile, compilatorul va genera o eroare.