Präzise Implementierung der Funktionsanwendung zum Auflisten von Elementen in Go
Beim Versuch, eine Transformation auf jedes Mitglied einer Liste anzuwenden und die Ergebnisse zu speichern In einer neuen Liste greift man häufig auf explizite Schleifen zurück. In Python stellen Listenverständnisse jedoch eine prägnante Alternative dar, wie unten gezeigt:
list = [1,2,3] str = ', '.join(multiply(x, 2) for x in list)
In Go erfordert ein ähnlicher Ansatz eine ausführlichere Schleifenstruktur:
list := []int{1,2,3} list2 := []int for _,x := range list { list2 := append(list2, multiply(x, 2)) } str := strings.Join(list2, ", ")
Allerdings Go 1.18 führt mit der Map-Funktion eine elegante Lösung ein. Hier ist eine Implementierung von Map und seine Verwendung:
func Map[T, V any](ts []T, fn func(T) V) []V { result := make([]V, len(ts)) for i, t := range ts { result[i] = fn(t) } return result }
input := []int{4, 5, 3} outputInts := Map(input, func(item int) int { return item + 1 }) outputStrings := Map(input, func(item int) string { return fmt.Sprintf("Item:%d", item) })
Diese prägnante Syntax vereinfacht die Transformation von Listenelementen und bietet für solche Aufgaben einen erheblichen Vorteil gegenüber expliziten Schleifen.
Das obige ist der detaillierte Inhalt vonWie kann die Kartenfunktion von Go die Transformation von Listenelementen optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!