使用通用函数映射对象数组
在 Go 中,对数组进行操作的函数由于其不灵活的性质和相关的开销而具有一定的局限性与复制参数。本文探讨了一种使用通用顶级函数以简洁方式映射对象数组的方法。
在 Go 中映射对象数组使用单行代码,您可以定义一个名为 Map 的泛型函数,如下所示:
func Map[T, U any](ts []T, f func(T) U) []U { us := make([]U, len(ts)) for i := range ts { us[i] = f(ts[i]) } return us }
该函数采用 T 类型的数组和采用参数的函数 f类型为 T 并返回类型为 U 的值。它返回包含映射值的类型为 U 的数组。
要映射对象数组,可以使用 Map 函数,例如this:
names := []string{"Alice", "Bob", "Carol"} fmt.Println(Map(names, utf8.RuneCountInString))
此代码将打印以下输出到stdout:
[5 3 5]
Map 函数基于循环,与在数组上操作的本机函数相比,可能会带来开销。权衡简洁语法的好处和潜在的性能影响非常重要。
以上是如何使用泛型函数有效地映射 Go 中的对象数组?的详细内容。更多信息请关注PHP中文网其他相关文章!