首页 >后端开发 >Golang >如何使用泛型函数有效地映射 Go 中的对象数组?

如何使用泛型函数有效地映射 Go 中的对象数组?

Barbara Streisand
Barbara Streisand原创
2024-12-28 18:24:20595浏览

How Can I Efficiently Map Arrays of Objects in Go Using a Generic Function?

使用通用函数映射对象数组

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn