Heim > Backend-Entwicklung > Golang > Go Maps: „map[string]int{}' vs. „make(map[string]int)': Was ist der Unterschied?

Go Maps: „map[string]int{}' vs. „make(map[string]int)': Was ist der Unterschied?

Patricia Arquette
Freigeben: 2025-01-03 06:53:40
Original
891 Leute haben es durchsucht

Go Maps: `map[string]int{}` vs. `make(map[string]int)`: What's the Difference?

Den Unterschied zwischen der Karteninitialisierung mit und ohne make verstehen

Beim Umgang mit Karten in Go können Sie auf zwei unterschiedliche Formen der Initialisierung stoßen:

1. Verwenden eines Kartenliterals:

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

2. Verwendung der make-Funktion:

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

Funktionelle Unterschiede:

Der Hauptunterschied liegt in der Art und Weise, wie Karten initialisiert werden. Die zweite Form, die make verwendet, erzeugt immer eine leere Karte. Die erste Form ist jedoch ein Einzelfall eines Kartenliterals. Kartenliterale können Karten mit anfänglichen Schlüssel-Wert-Paaren erstellen. Zum Beispiel:

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

Äquivalenz und Leistung:

Die verallgemeinerte Version Ihres Beispiels,

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

entspricht dem Aufruf von make:

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

Leistungsmäßig verhalten sich die beiden Ansätze bei der Leererstellung identisch Karten.

Anfangskapazität:

Der Hauptvorteil der Verwendung von make ist die Möglichkeit, eine Anfangskapazität anzugeben. Dies kann durch Hinzufügen eines ganzzahligen Arguments zur Make-Funktion erfolgen:

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

Dies initialisiert eine Karte mit Platz für 50 Elemente. Durch die Vorabzuweisung können zukünftige Speicherzuweisungen reduziert werden, wenn Sie mit einem Kartenwachstum rechnen.

Das obige ist der detaillierte Inhalt vonGo Maps: „map[string]int{}' vs. „make(map[string]int)': Was ist der Unterschied?. 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