Spielt es beim Erstellen von Karten eine Rolle?
Beim Erstellen von Karten in Go haben Entwickler zwei Möglichkeiten:
var m = map[string]int{}
var m = make(map[string]int)
Während Ersteres wie eine Abkürzung für eine schnellere Feldinitialisierung erscheinen mag, haben beide Optionen subtile Auswirkungen Unterschiede.
Map-Literale vs. make
Die erste Form ist ein Sonderfall eines Map-Literals, der die Erstellung nicht leerer Maps mit bestimmten Schlüssel- Wertepaare. Zum Beispiel:
m := map[bool]string{false: "FALSE", true: "TRUE"}
Im Gegensatz dazu erstellt das zweite Formular, das make verwendet, immer eine leere Karte. Es entspricht dem Kartenliteral ohne Anfangswerte, wie zum Beispiel:
m := map[string]int{}
Anfangskapazität
Der Hauptunterschied zwischen den beiden Ansätzen liegt in der Fähigkeit zur Spezifizierung eine Anfangskapazität. Mit make können Sie Platz für eine bestimmte Anzahl von Elementen zuweisen, auch wenn diese ursprünglich nicht zugewiesen wurden. Dies kann dazu beitragen, zukünftige Zuweisungen zu reduzieren, wenn Sie damit rechnen, dass die Karte erheblich wächst. Beispiel:
m := make(map[string]int, 50)
Dadurch wird eine Karte mit ausreichend Platz für 50 Elemente erstellt, wodurch möglicherweise die Zuweisungen reduziert werden, wenn die Karte erweitert wird.
Best Practice
Im Allgemeinen hängt die Wahl zwischen den beiden Methoden von der Situation ab. Wenn Sie eine leere Karte erstellen, bei der die Leistung nicht entscheidend ist, ist jede Option ausreichend. Wenn Sie jedoch eine große Karte erwarten oder die anfängliche Kapazität festlegen möchten, wird die Verwendung von make empfohlen.
Das obige ist der detaillierte Inhalt vonSpielt „map' oder „make' beim Erstellen von Karten in Go eine Rolle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!