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 } }
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!