Les programmeurs Python sont familiers avec la compréhension de liste 便捷的pour appliquer des fonctions à des éléments de liste. Cependant, dans Go, une approche plus explicite basée sur des boucles est généralement utilisée.
Voici un extrait de code démontrant l'approche traditionnelle dans Go :
list := []int{1, 2, 3} list2 := []int{} for _, x := range list { list2 = append(list2, multiply(x, 2)) } str := strings.Join(list2, ", ")
Existe-t-il une manière plus concise de faire est-ce dans Go ?
Présentation de la carte générique de Go 1.18 Fonction
Avec la sortie de Go 1.18, une fonction générique Map a été introduite. Elle permet l'application concise de fonctions pour lister les éléments et la génération d'une nouvelle liste contenant les valeurs transformées.
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 }
Exemple d'utilisation
La fonction Map peut être utilisé comme suit :
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) })
Conclusion
La fonction générique Map dans Go 1.18 fournit un moyen succinct et efficace d'appliquer des fonctions aux éléments de la liste, en créant une nouvelle liste avec les valeurs transformées. Cela simplifie le code et améliore la lisibilité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!