我遇到了一个问题,需要编辑二维切片的多个索引。
将以下数字想象为切片的 2-D 切片a [][]int
0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6
问题是我想访问和修改
0 1
1 2
作为一个子切片,我也想改变。我用这段代码实现了:
sub := a[:2]
for i := range sub {
sub[i] = sub[i][:2]
}
现在fmt.Println(sub)
打印[[0 1] [1 2]]
但问题是fmt.Println(a)
打印[[0 1] [1 2] [2 3 4 5] [3 4 5 6]]
问题是,如何在不丢失任何数据的情况下访问此子切片?
如果您的目标是在使用sub
时修改原始 []int 切片元素,则将a
的元素复制到新切片中。 问题中的代码直接修改a
。
sub := make([][]int, 2)
for i := range sub {
sub[i] = a[i][:2]
}
刚刚找到一个解决方案,但不知道它是否是正确的方法
sub := make([][]int, 2)
for i := range sub {
sub[i] = a[i][:2]
}
sub[0][0] = "876"
fmt.Println(a)
fmt.Println(sub)
现在在我有的输出中
[[876 1 2 3] [1 2 3 4] [2 3 4 5] [3 4 5 6]]
[[876 1] [1 2]]