首页 > 后端开发 > Golang > 如何在 Go 中将多维切片展平为一维切片?

如何在 Go 中将多维切片展平为一维切片?

Patricia Arquette
发布: 2024-12-09 07:22:08
原创
257 人浏览过

How to Flatten Multidimensional Slices into One-Dimensional Slices in Go?

Go 中多维切片转换为一维切片

在编程中,经常需要将多维切片转换为一维切片各种原因。然而,Go 并没有提供执行此操作的直接函数。

来自预定 2D 切片的 1D 切片

对于已知的静态 2D 切片,一个简单的循环可以有效地将其展平为一维切片:

var arr2d = [][]int32{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
var arr1d []int32
for _, a := range arr2d {
    arr1d = append(arr1d, a...)
}
登录后复制

此方法迭代中的每个元素2D 切片并将它们累积到 1D 切片 arr1d 中,结果是:

arr1d = [1, 2, 3, 4, 5, 6, 7, 8, 9]
登录后复制

未知维度的通用扁平化

对于 2D 切片的维度为的情况未知或动态,需要更稳健的方法。虽然 Go 缺乏通用扁平化的内置函数,但有几个软件包提供了此功能:

  • arrayutils: https://pkg.go.dev/github.com/icza /arrayutils#FlattenSlice
  • 平: https://pkg.go.dev/github.com/srika403/flat#ExtSliceChain

这些包提供了将任意深度的多维切片递归展平为单维切片的函数。

结论

虽然Go没有提供用于展平多维切片的内置方法,使用循环或外部包存在有效的解决方案。了解这些方法可以为各种编程场景高效转换复杂的数据结构。

以上是如何在 Go 中将多维切片展平为一维切片?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板