首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Go中复制切片?

如何在Go中复制切片?
EN

Stack Overflow用户
提问于 2018-08-19 04:41:57
回答 1查看 86关注 0票数 2

mapArray是float32的2D切片。我制作了一个副本,这样我就可以在不修改mapArray的情况下处理该副本。然而,事实并非如此。为Origin赋值会修改mapArray

代码语言:javascript
运行
复制
origins := it.Empty2DArray(len(mapArray))
copy(origins, mapArray)
origins[5][5] = -1

这样做会使mapArray[5][5]变为-1,而不是它的原始值。

如何制作切片的真正独立副本?

谢谢。

编辑:

代码语言:javascript
运行
复制
// Empty2DArray returns a zeroed 2D array.
func Empty2DArray(arraySize int) [][]float32 {
    emptyArray := make([][]float32, arraySize)
    for y := 0; y < arraySize; y++ {
        row := make([]float32, arraySize)
        for x := 0; x < arraySize; x++ {
            row[x] = 0
        }
        emptyArray[y] = row
    }
    return emptyArray
}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51912390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档