Maison > développement back-end > Golang > le corps du texte

Comment puis-je appliquer des fonctions pour répertorier les éléments de manière concise dans Go ?

DDD
Libérer: 2024-11-20 13:46:13
original
472 Les gens l'ont consulté

How Can I Apply Functions to List Elements Concisely in Go?

Application de fonctions concises pour lister des éléments dans Go

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, ", ")
Copier après la connexion

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

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

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal