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
Libérer: 2025-01-03 08:06:39
original
723 Les gens l'ont consulté

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
}
Copier après la connexion

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]
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal