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