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{}
2. Verwendung der make-Funktion:
var m = make(map[string]int)
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"}
Äquivalenz und Leistung:
Die verallgemeinerte Version Ihres Beispiels,
m := map[T]U{}
entspricht dem Aufruf von make:
m := make(map[T]U)
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)
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!