Heim >Backend-Entwicklung >Golang >Wie kann ich ein Array von Objekten in Go effizient zuordnen?
Zuordnen eines Arrays von Objekten in Go
In Node.js können Sie die Map-Funktion verwenden, um ein Array von Objekten in ein Array umzuwandeln Array von Werten. Sie fragen sich, wie Sie dies in Go präzise erreichen können?
Go-Lösung: Karte als Top-Level-Funktion
Im Gegensatz zu Methoden in Go können Top-Level-Funktionen zusätzliche Funktionen benötigen Geben Sie Argumente ein. Damit können wir Map als generische Funktion definieren:
func Map[T, U any](ts []T, f func(T) U) []U { us := make([]U, len(ts)) for i := range ts { us[i] = f(ts[i]) } return us }
Jetzt können Sie diese Funktion wie folgt verwenden:
names := []string{"Alice", "Bob", "Carol"} fmt.Println(Map(names, utf8.RuneCountInString)) // Output: [5 3 5]
Historischer Kontext: Warum die Karte nicht vorhanden ist in Standard-Go-Bibliotheken
Vor Go 1.18 ausführliche Diskussionen in der GitHub-Ausgabe für Der Vorschlag von golang.org/x/exp/slices erwog das Hinzufügen einer Kartenfunktion, entschied sich aber letztendlich dagegen, weil Bedenken hinsichtlich:
Streams-API gilt als potenzielles zukünftiges Zuhause für eine solche Funktion.
Das obige ist der detaillierte Inhalt vonWie kann ich ein Array von Objekten in Go effizient zuordnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!