Heim >Backend-Entwicklung >Golang >Können Funktionen als Schlüssel in Go Maps verwendet werden?

Können Funktionen als Schlüssel in Go Maps verwendet werden?

Susan Sarandon
Susan SarandonOriginal
2024-11-01 04:10:02737Durchsuche

Can Functions Be Used as Keys in Go Maps?

Zuordnung mit Funktionstasten

Die Zuordnung von Daten mithilfe von Funktionen als Tasten kann Flexibilität beim Zugriff auf Werte bieten. Der Versuch, eine Karte mit einer Funktion als Schlüssel zu erstellen, wie unten dargestellt, führt jedoch zu einem Fehler:

type Action func(int)
func test(a int) { }
func test2(a int) { }

func main() {
  x := map[Action]bool{}
  x[test] = true
  x[test2] = false
}

Fehler: Aktion für ungültigen Kartenschlüsseltyp

Sprachbeschränkung

Die Go-Sprachspezifikation besagt ausdrücklich, dass Funktionen nicht als Kartenschlüssel verwendet werden können. Diese Einschränkung ergibt sich aus der Anforderung, dass Schlüssel Operatoren wie Gleichheitsvergleiche unterstützen müssen, was für Funktionen nicht möglich ist.

The comparison operators == and != must be fully defined for operands of the key type; thus the key type must not be a function, map, or slice.

Daher ist die Verwendung von Funktionen als Zuordnungsschlüssel von der Sprache nicht zulässig, um die Konsistenz von Schlüsselvergleichen sicherzustellen und mögliche Fehler verhindern.

Das obige ist der detaillierte Inhalt vonKönnen Funktionen als Schlüssel in Go Maps verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn