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

Mary-Kate Olsen
Freigeben: 2024-11-10 04:12:03
Original
223 Leute haben es durchsucht

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
}
Nach dem Login kopieren

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}])
Nach dem Login kopieren

Ausgabe:

2^2 = 4
2^3 = 8
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage