Was ist die Big O-Leistung von Karten in Golang?
Das Abschnitt "Kartentypen" der go-Sprachspezifikation beschreibt die Benutzeroberfläche und die allgemeine Verwendung von Kartentypen und das Beitrag "Go maps in action" auf The Go Blog erwähnt gelegentlich Hash-Tabellen und "schnelle Suchvorgänge, Hinzufügungen und Löschvorgänge".
DasStromruntime/hashmap.go
Quellcod beschreibt seine Implementierung als Hash-Tabelle (die in der Regel abgeschrieben wirdO(1)
); Ich sehe jedoch keine Garantie für Leistungsmerkmale (wie die Leistung von Big O) in der Sprachspezifikation oder in anderen Materialien.
Macht die Go-Sprache ein beliebigesPerformanc Garantien (z. B. Einfügen / Nachschlagen / Löschen zu konstanten Zeiten?) für Kartentypen oder nurSchnittstell garantiert? (Vergleichen Sie mit der Java-Sprache, in der interfaces und Implementierungen sind klar getrennt.)