Heim > Backend-Entwicklung > Golang > Warum verfügt Golang nicht über eine native Mengendatenstruktur?

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

Patricia Arquette
Freigeben: 2024-11-28 16:43:14
Original
946 Leute haben es durchsucht

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 ließen die Designer von Golang, inspiriert von Googles einflussreicher Guava-Bibliothek, die Unterstützung für eine so grundlegende Struktur aus und zwangen die Entwickler, 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
  }
}
Nach dem Login kopieren

Während diese kartenbasierten Implementierungen für die meisten praktischen Szenarien ausreichend sind, kann dies bei einigen der Fall sein argumentieren, dass eine native Mengenimplementierung 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.

Das obige ist der detaillierte Inhalt vonWarum verfügt Golang nicht über eine native Mengendatenstruktur?. 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