Mappage d'un tableau d'objets dans Go
Dans Node.js, vous pouvez utiliser la fonction map pour transformer un tableau d'objets en un tableau de valeurs. Vous vous demandez comment y parvenir dans Go avec concision ?
Solution Go : cartographier en tant que fonction de niveau supérieur
Contrairement aux méthodes de Go, les fonctions de niveau supérieur peuvent nécessiter des tapez des arguments. En utilisant cela, nous pouvons définir Map comme une fonction générique :
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 }
Maintenant, vous pouvez utiliser cette fonction comme suit :
names := []string{"Alice", "Bob", "Carol"} fmt.Println(Map(names, utf8.RuneCountInString)) // Output: [5 3 5]
Contexte historique : pourquoi la carte est absente dans les bibliothèques Go standard
Avant Go 1.18, des discussions approfondies dans le numéro GitHub pour le La proposition de golang.org/x/exp/slices a envisagé d'ajouter une fonction Map, mais a finalement décidé de ne pas le faire en raison de préoccupations concernant :
Streams L'API est considérée comme un futur foyer potentiel pour une telle fonction.
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!