Heim > Backend-Entwicklung > Golang > Was ist der Unterschied zwischen „map[T]U{}' und „make(map[T]U)' in Go?

Was ist der Unterschied zwischen „map[T]U{}' und „make(map[T]U)' in Go?

Patricia Arquette
Freigeben: 2024-12-04 17:26:11
Original
410 Leute haben es durchsucht

What's the Difference Between `map[T]U{}` and `make(map[T]U)` in Go?

Den Unterschied zwischen der Kartenerstellung mit und ohne make verstehen

In Go gibt es zwei Möglichkeiten, eine Karte zu initialisieren:

var m = map[string]int{}
Nach dem Login kopieren
var m = make(map[string]int)
Nach dem Login kopieren

Obwohl diese ähnlich erscheinen mögen, haben sie unterschiedliche Auswirkungen und sind unterschiedlich praktisch Überlegungen.

Erstellung einer leeren Karte mit make

Die zweite Form, make(map[string]int), erstellt immer eine leere Karte. Dies ist eine einfache Möglichkeit, eine Karte ohne anfängliche Schlüssel-Wert-Paare zu initialisieren.

Nicht leere Kartenliterale

Die erste Form, map[string]int{ } ist ein Sonderfall eines Kartenliterals. Kartenliterale ermöglichen die Erstellung nicht leerer Karten mit vordefinierten Schlüssel-Wert-Paaren. Zum Beispiel:

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

Leere Kartenliterale

Nun das Beispiel in Ihrer Frage:

m := map[T]U{}
Nach dem Login kopieren

Es ist ein Kartenliteral mit Nr Anfangswerte (Schlüssel/Wert-Paare). Dies entspricht:

m := make(map[T]U)
Nach dem Login kopieren

Daher ist das erste Formular im Wesentlichen eine Abkürzung für das letztere beim Erstellen einer leeren Karte.

Leistungsüberlegungen

Von der Performance her sind beide Ansätze für die Erstellung einer leeren Karte vergleichbar. Allerdings bietet make die zusätzliche Flexibilität, eine Anfangskapazität anzugeben. Durch die Angabe einer größeren Kapazität weist make vorab genügend Speicherplatz zu, um eine bestimmte Anzahl von Elementen aufzunehmen. Dies kann hilfreich sein, um zukünftige Zuweisungen zu reduzieren, wenn Sie wissen, dass die Karte wahrscheinlich wachsen wird.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „map[T]U{}' und „make(map[T]U)' in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage