Maison > développement back-end > Golang > Comment transformer des éléments de liste de manière concise dans Go ?

Comment transformer des éléments de liste de manière concise dans Go ?

Mary-Kate Olsen
Libérer: 2024-11-10 18:03:02
original
343 Les gens l'ont consulté

How to Transform List Elements Concisely in Go?

Un moyen plus court de transformer des éléments de liste dans Go

En Python, l'application d'une fonction à chaque élément d'une liste peut être obtenue à l'aide de compréhensions de liste . Cependant, en Go, une approche plus détaillée impliquant une boucle est couramment utilisée. Cette question explore une manière concise d'accomplir cette opération dans Go.

Solution Python :

list = [1,2,3]
str = ', '.join(multiply(x, 2) for x in list)
Copier après la connexion

Solution Go (originale) :

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

Solution Go plus courte (Go 1.18 ):

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

Utilisation :

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

Cette fonction Carte offre un moyen concis et générique d'appliquer une fonction à une liste de tout type , résultant en une nouvelle liste de valeurs transformées.

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