首页 > 后端开发 > Golang > 正文

如何在 Go 中简洁地转换列表元素?

Mary-Kate Olsen
发布: 2024-11-10 18:03:02
原创
298 人浏览过

How to Transform List Elements Concisely in Go?

在 Go 中转换列表元素的更短方法

在 Python 中,可以使用列表推导式将函数应用于列表中的每个元素。然而,在 Go 中,通常使用涉及循环的更详细的方法。本题探讨了在 Go 中完成此操作的简洁方法。

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, ", ")
登录后复制

更短的 Go 解决方案(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
}
登录后复制

用法:

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) })
登录后复制

此 Map 函数提供了一种简洁而通用的方法,可以将函数应用于任何类型的列表,产生一个新的转换值列表。

以上是如何在 Go 中简洁地转换列表元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板