首页 > 后端开发 > Golang > 如何有效地将函数应用于 Go 列表中的每个元素?

如何有效地将函数应用于 Go 列表中的每个元素?

Barbara Streisand
发布: 2024-11-13 04:39:02
原创
198 人浏览过

How Can I Apply a Function to Every Element in a Go List Efficiently?

Go 中列表的高效函数应用

将函数应用于 Go 列表中的每个元素并将结果存储在新列表中,传统方法涉及循环输入列表并将结果附加到输出列表。然而,在 Go 1.18 及更高版本中,有一个更简洁和通用的解决方案:Map 函数。

Map 函数采用 T 类型的元素列表和一个将每个元素转换为类型值的函数V. 它返回一个 []V 类型的新列表,其中包含将函数应用于输入列表中每个元素的结果。

这是一个示例:

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
}

// Usage example
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 函数与两个不同的函数一起应用来创建递增整数 (outputInts) 列表和格式化字符串 (outputStrings) 列表。这消除了显式循环的需要,并为传统方法提供了简洁高效的替代方案。

以上是如何有效地将函数应用于 Go 列表中的每个元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

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