假设我想将一个函数应用于列表中的每个元素,然后将结果值放入另一个列表中,以便立即使用它们。在python中,我会做这样的事情:

list = [1,2,3]
str = ', '.join(multiply(x, 2) for x in list)

在Go中,我执行以下操作:
list := []int{1,2,3}
list2 := []int

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

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

可以用更短的方式做到这一点吗?

最佳答案

我会完全按照您的方式做,并做一些调整来修正错别字

import (
    "fmt"
    "strconv"
    "strings"
)

func main() {
    list := []int{1,2,3}

    var list2 []string
    for _, x := range list {
        list2 = append(list2, strconv.Itoa(x * 2))  // note the = instead of :=
    }

    str := strings.Join(list2, ", ")
    fmt.Println(str)
}

关于go - 将函数应用于golang列表中所有元素的简短方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33726731/

10-15 16:41