Junior — Middle
Kann man eine Datenstruktur als Schlüssel in einer Karte oder Hashtabelle verwenden?
sobes.tech KI
Antwort von AI
In Go kann eine Datenstruktur als Schlüssel in einer Karte (map) verwendet werden, wenn sie die Anforderungen an Vergleichbarkeit (comparable) erfüllt. Das bedeutet, dass alle Felder der Struktur Typen sein müssen, die mit dem Operator == vergleichbar sind.
Zum Beispiel können Strukturen, die nur Basistypen (int, string, bool usw.) oder andere vergleichbare Strukturen enthalten, als Schlüssel verwendet werden. Strukturen, die Slices, Karten oder Funktionen enthalten, können jedoch keine Schlüssel sein, da diese Typen nicht vergleichbar sind.
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 beim Versuch, sie als Schlüssel zu verwenden, einen Fehler aus.