Heim >Backend-Entwicklung >Golang >Wie kann 1.18 die Transformation von Listenelementen optimieren?
Wenn Sie die Aufgabe haben, eine Funktion auf jedes Element in einer Liste anzuwenden und die Ergebnisse in einer neuen Liste zusammenzustellen, werden Sie vielleicht feststellen, dass … Verwenden Sie einen konventionellen schleifenbasierten Ansatz ähnlich dem folgenden Beispiel:
list := []int{1, 2, 3} list2 := []int{} for _, x := range list { list2 := append(list2, multiply(x, 2)) } str := strings.Join(list2, ", ")
Obwohl diese Methode ihren Zweck erfüllt, mangelt es ihr an Kürze und Eleganz in Pythons Verständnissyntax.
Glücklicherweise ist mit der Einführung von Go 1.18 eine schlankere generische Map-Funktion entstanden:
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 }
Diese Map-Funktion ermöglicht eine viel sauberere Transformation von Listenelementen :
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) })
Mit diesem neuen Ansatz können Sie Funktionen einfach und effizient zum Auflisten von Elementen anwenden und so Ihren Go-Code stärken das gleiche Maß an Prägnanz und Leistungsfähigkeit wie in Python.
Das obige ist der detaillierte Inhalt vonWie kann 1.18 die Transformation von Listenelementen optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!