„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum verfügt Golang nicht über eine native Mengendatenstruktur?

Warum verfügt Golang nicht über eine native Mengendatenstruktur?

Veröffentlicht am 15.11.2024
Durchsuche:444

Why Doesn't Golang Have a Native Set Data Structure?

Golangs seltsamer Mangel an festgelegter Datenstruktur

In Golang hat das grundlegende Bedürfnis nach einer festgelegten Datenstruktur zu der rätselhaften Frage geführt: Warum ist das nicht nativ vorgesehen? Warum haben die Designer von Golang, inspiriert von Googles einflussreicher Guava-Bibliothek, die Unterstützung für eine so grundlegende Struktur weggelassen und Entwickler gezwungen, ihre eigenen Implementierungen zu erstellen?

Die Antwort liegt in der Einfachheit der Konstruktion von Sets mithilfe von Karten. Wie im bereitgestellten Codeausschnitt gezeigt, können Karten zum Erstellen von Sets genutzt werden. Schlüsseloperationen wie die Prüfung auf Existenz, das Hinzufügen, Entfernen und Durchführen von Mengenoperationen (Vereinigung, Schnittmenge) können einfach implementiert werden.

s := map[int]bool{5: true, 2: true}
_, ok := s[6] // check for existence
s[8] = true // add element 
delete(s, 2) // remove element

// Union
s_union := map[int]bool{}
for k, _ := range s1{
    s_union[k] = true
}
for k, _ := range s2{
    s_union[k] = true
}

// Intersection
s_intersection := map[int]bool{}
if len(s1) > len(s2) {
  s1, s2 = s2, s1 // better to iterate over a shorter set
}
for k,_ := range s1 { 
  if s2[k] {
    s_intersection[k] = true
  }
}

Während diese kartenbasierten Implementierungen für die meisten praktischen Szenarien ausreichend sind, könnten einige argumentieren, dass eine native Set-Implementierung die Lesbarkeit des Codes vereinfachen und verbessern würde. Dennoch ist für Golang-Entwickler das Verständnis der Verwendung von Karten als Mengen sowohl für die Problemlösung als auch für die effiziente Ressourcennutzung von entscheidender Bedeutung.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3