Python-Programmierer sind mit dem 便捷的Listenverständnis für die Anwendung von Funktionen auf Listenelemente vertraut. In Go wird jedoch normalerweise ein expliziterer schleifenbasierter Ansatz verwendet.
Hier ist ein Codeausschnitt, der den traditionellen Ansatz in Go demonstriert:
list := []int{1, 2, 3} list2 := []int{} for _, x := range list { list2 = append(list2, multiply(x, 2)) } str := strings.Join(list2, ", ")
Gibt es eine prägnantere Möglichkeit? das in Go?
Einführung der generischen Kartenfunktion von Go 1.18
Mit der Veröffentlichung von Go 1.18 wurde eine generische Kartenfunktion eingeführt. Es ermöglicht die präzise Anwendung von Funktionen auf Listenelemente und die Generierung einer neuen Liste mit den transformierten Werten.
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 }
Verwendungsbeispiel
Die Map-Funktion kann kann wie folgt verwendet werden:
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) })
Fazit
Die generische Map-Funktion in Go 1.18 bietet eine prägnante und effiziente Möglichkeit, Funktionen auf Listenelemente anzuwenden und so ein neues zu erstellen Liste mit den transformierten Werten. Es vereinfacht den Code und verbessert die Lesbarkeit.
Das obige ist der detaillierte Inhalt vonWie kann ich Funktionen anwenden, um Elemente in Go übersichtlich aufzulisten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!