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
Mary-Kate Olsenoriginal
2024-11-10 18:03:02331parcourir

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)

Solution Go (originale) :

list := []int{1,2,3}
list2 := []int

for _,x := range list {
    list2 := append(list2, multiply(x, 2))
}

str := strings.Join(list2, ", ")

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
}

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) })

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!

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