Go 中是否有用于将一个数组复制到另一个数组的内置函数?这适用于二维(或更多)维数组吗?
原文由 angry_gopher 发布,翻译遵循 CC BY-SA 4.0 许可协议
Go 中是否有用于将一个数组复制到另一个数组的内置函数?这适用于二维(或更多)维数组吗?
原文由 angry_gopher 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Go 中复制数组的主要“功能”是 赋值运算符 = ,就像任何其他类型的任何其他值一样。
package main
import "fmt"
func main() {
var a, b [4]int
a[2] = 42
b = a
fmt.Println(a, b)
// 2D array
var c, d [3][5]int
c[1][2] = 314
d = c
fmt.Println(c)
fmt.Println(d)
}
输出:
[0 0 42 0] [0 0 42 0]
[[0 0 0 0 0] [0 0 314 0 0] [0 0 0 0 0]]
[[0 0 0 0 0] [0 0 314 0 0] [0 0 0 0 0]]
原文由 zzzz 发布,翻译遵循 CC BY-SA 3.0 许可协议
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答2k 阅读✓ 已解决
1 回答3.4k 阅读
2 回答2.2k 阅读
1 回答2.1k 阅读
是的: http ://play.golang.org/p/_lYNw9SXN5
copy
将对行进行浅表复制: http ://play.golang.org/p/0gPk6P1VWh我不认为有一个内置的多维数组的深度复制:你可以像这样手动完成: http ://play.golang.org/p/nlVJq-ehzC
编辑:正如评论中所指出的,我假设“复制数组”是指“对切片进行深度复制”,因为可以根据 jnml 的回答使用
=
运算符对数组进行深度复制(因为数组是值类型): http ://play.golang.org/p/8EuFqXnqPB