Maison >développement back-end >Golang >Comment puis-je mapper efficacement des tableaux d'objets dans Go à l'aide d'une fonction générique ?
Mappage de tableaux d'objets à l'aide d'une fonction générique
Dans Go, les fonctions opérant sur des tableaux ont certaines limitations en raison de leur nature rigide et de la surcharge associée avec copie des arguments. Cet article explore une approche pour mapper des tableaux d'objets de manière concise à l'aide d'une fonction générique de niveau supérieur.
Pour mapper un tableau d'objets dans Go avec un one-liner, vous pouvez définir une fonction générique nommée Map comme suit :
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 }
Cette fonction prend un tableau de type T et une fonction f qui prend un paramètre de type T et renvoie une valeur de type U. Il renvoie un tableau de type U contenant les valeurs mappées.
Pour mapper un tableau d'objets, vous pouvez utiliser la fonction Map comme ceci :
names := []string{"Alice", "Bob", "Carol"} fmt.Println(Map(names, utf8.RuneCountInString))
Ce code imprimera la sortie suivante sur stdout :
[5 3 5]
La fonction Map est basée sur une boucle et peut introduire une surcharge par rapport aux fonctions natives fonctionnant sur des tableaux. Il est important de peser les avantages d'une syntaxe concise par rapport aux implications potentielles en termes de performances.
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!