Heim >Backend-Entwicklung >Golang >Go Maps: „make' vs. Map Literal – Wann sollte ich welches verwenden?

Go Maps: „make' vs. Map Literal – Wann sollte ich welches verwenden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-13 12:48:14212Durchsuche

Go Maps:  `make` vs. Map Literal – When Should I Use Which?

Erklärung der Unterschiede zwischen der Karteninitialisierung mit und ohne „make“

Bei der Arbeit mit Go-Karten gibt es hauptsächlich zwei Möglichkeiten, diese zu initialisieren : Verwenden eines Kartenliterals oder Aufrufen der Funktion „make“. Das Verständnis der subtilen Nuancen zwischen diesen Methoden ist entscheidend für die Optimierung der Codeleistung.

Map-Literale vs. „make“

Der zweite Ansatz, der die Verwendung von „make(map[string ]int)“ erstellt konsequent eine leere Karte. Allerdings stellt die erste Methode, „var m = map[string]int{}“, ein Kartenliteral dar. Diese Technik ist für die Initialisierung von Karten mit nicht leeren Werten reserviert.

Beispiel:

m := map[bool]string{false: "FALSE", true: "TRUE"}

Literale ohne Anfangswerte zuordnen

Wenn Sie Ihr Beispiel „m := map[T]U{}“ verallgemeinern, entsteht ein Kartenliteral ohne anfänglichen Schlüsselwert Paare. Dies ist funktional identisch mit „m := make(map[T]U)“.

Überlegungen zur Leistung

Beim Initialisieren einer leeren Karte gibt es praktisch keine Leistung Unterschied zwischen der Verwendung eines Kartenliterals oder „make“. Beide Ansätze erzeugen eine leere Karte und belegen die gleiche Menge an Speicher.

Angabe der Anfangskapazität

Der wahre Vorteil der Verwendung von „make“ liegt in der Möglichkeit, eine anzugeben anfängliche Kapazität für eine Karte. Standardmäßig werden Karten mit einem Wachstumsfaktor initialisiert, der ihre Größe jedes Mal verdoppelt, wenn ihre Kapazität überschritten wird. Wenn Sie jedoch „make“ verwenden, können Sie die Größe der Karte vorab festlegen.

Beispiel:

m := make(map[T]U, 50)

Der obige Code erstellt eine Karte mit ausreichend Platz für bis zu 50 Elemente. Dieser Ansatz kann dazu beitragen, zukünftige Speicherzuweisungen zu minimieren, wenn Sie damit rechnen, dass die Größe der Karte deutlich zunimmt.

Das obige ist der detaillierte Inhalt vonGo Maps: „make' vs. Map Literal – Wann sollte ich welches verwenden?. 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