在 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中文网其他相关文章!