Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Strukturen effektiv nutzen, um zusammengesetzte Schlüssel in Go-Maps zu erstellen?

Wie kann ich Strukturen effektiv nutzen, um zusammengesetzte Schlüssel in Go-Maps zu erstellen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-10 04:12:03224Durchsuche

How can I effectively use structs to create composite keys in Go maps?

Verwenden von Strukturen für zusammengesetzte Schlüssel in Go-Maps

In Go ermöglichen zusammengesetzte Schlüssel in Hash-Maps die Kombination mehrerer Werte, um einen eindeutigen Schlüssel für zu bilden die Karte. Im Gegensatz zu zusammengesetzten Schlüsseln in Datenbanken werden diese für Rechenzwecke verwendet.

Um berechnete Werte von pow(x, y) in einer Hash-Tabelle zu speichern, können Sie einen zusammengesetzten Schlüssel mithilfe einer Struktur definieren:

type Key struct {
    X, Y int
}

Diese Struktur kombiniert die x- und y-Werte, um einen Schlüssel zu erstellen. Sie können diesen Schlüssel in einer Karte wie folgt verwenden:

m := map[Key]int{}
m[Key{2, 2}] = 4
m[Key{2, 3}] = 8

fmt.Println("2^2 =", m[Key{2, 2}])
fmt.Println("2^3 =", m[Key{2, 3}])

Ausgabe:

2^2 = 4
2^3 = 8

Strukturen werden als Schlüssel verwendet, da sie eine einfache Möglichkeit bieten, mehrere Werte als eine einzelne Einheit darzustellen . Sie stellen sicher, dass die richtigen Vergleichsoperatoren (== und !=) definiert sind, was einen effizienten Schlüsselabruf aus der Karte ermöglicht.

Die Verwendung von Zeigern als Schlüsseltypen wird nicht empfohlen, da beim Zeigervergleich nur Speicheradressen und nicht die tatsächlichen Werte überprüft werden . Arrays können auch als Schlüsseltypen verwendet werden, Strukturen bieten jedoch mehr Flexibilität.

Das obige ist der detaillierte Inhalt vonWie kann ich Strukturen effektiv nutzen, um zusammengesetzte Schlüssel in Go-Maps zu erstellen?. 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