Junior — Middle
Kann man Strukturen als Schlüssel in einem assoziativen Array oder einer Map verwenden?
sobes.tech KI
Antwort von AI
In Go können nur Vergleichsoperationen (Operator ==) unterstützende Typen als Schlüssel in einer Map verwendet werden. Strukturen können als Schlüssel verwendet werden, wenn alle ihre Felder vergleichbar sind. Zum Beispiel, wenn eine Struktur nur Basistypen (int, string usw.) enthält, kann sie als Schlüssel verwendet werden. Wenn die Struktur jedoch Slices, Karten oder Funktionen enthält, kann sie nicht als Schlüssel verwendet werden.
Beispiel:
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] = "Punkt"
fmt.Println(m[p]) // Ausgabe: Punkt
}
Wenn die Struktur nicht vergleichbare Felder enthält, gibt der Compiler einen Fehler aus.