Maison >développement back-end >Golang >Comment puis-je mapper des tableaux d'objets dans Go ?

Comment puis-je mapper des tableaux d'objets dans Go ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-03 08:06:39734parcourir

How Can I Map Arrays of Objects in Go?

Mappage de tableaux d'objets dans Go

Dans Node.js, la fonction map() permet de créer un nouveau tableau en transformant chaque élément du tableau d'origine. Dans Go, les tableaux ne sont pas aussi flexibles que les tranches et ne prennent pas en charge les méthodes.

Cependant, vous pouvez implémenter une fonction Map générique qui peut être utilisée pour transformer un tableau d'objets en un tableau de leurs valeurs souhaitées.

Carte générique Fonction

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
}

Utilisation

fruits := []struct{ fruit string }{
    {fruit: "apple"},
    {fruit: "banana"},
    {fruit: "cherry"},
}

fruitNames := Map(fruits, func(fruit struct{ fruit string }) string { return fruit.fruit })

fmt.Println(fruitNames) // Outputs: [apple banana cherry]

Considérations

Bien que l'utilisation d'une fonction Carte à une seule ligne puisse être pratique, il est important de considérer ses limites :

  • Coûts cachés : La fonction Map alloue une nouvelle tranche et effectue une Itération O(n), ce n'est donc pas toujours l'option la plus efficace.
  • Gestion des erreurs : La fonction Map ne gère pas les erreurs qui peuvent survenir lors de la transformation des éléments. Si des erreurs sont possibles, une boucle personnalisée peut être nécessaire.

Malgré ces considérations, la fonction Map peut fournir une solution légère et élégante pour mapper des tableaux d'objets dans Go.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn