Sobes.tech
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.