Heim >Backend-Entwicklung >Golang >Spielt „map' oder „make' beim Erstellen von Karten in Go eine Rolle?

Spielt „map' oder „make' beim Erstellen von Karten in Go eine Rolle?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-01 05:57:11601Durchsuche

Does `map` or `make` Matter When Creating Maps in Go?

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!

Stellungnahme:
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