Python 程序员熟悉将函数应用于列表元素的便捷列表理解。然而,在 Go 中,通常使用更明确的基于循环的方法。
这里有一段代码片段演示了 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 的通用 Map 函数
随着 Go 1.18 的发布,引入了通用 Map 函数。它允许简洁地应用函数来列出元素并生成包含转换值的新列表。
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 }
使用示例
Map 函数可以使用如下:
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) })
结论
Go 1.18 中的通用 Map 函数提供了一种简洁有效的方法来将函数应用于列表元素,创建一个新的列表元素包含转换后的值的列表。它简化了代码并增强了可读性。
以上是Go中如何使用函数来简洁地列出元素?的详细内容。更多信息请关注PHP中文网其他相关文章!