Arrays 将新行追加到多维切片
我有一个函数,可以创建一个二维切片、一行和三列Arrays 将新行追加到多维切片,arrays,go,multidimensional-array,Arrays,Go,Multidimensional Array,我有一个函数,可以创建一个二维切片、一行和三列 func threeSum(nums []int) [][]int { result := make([][]int, 1) result[0] = []int{1, 2, 3} return result } 如果我想动态添加一行呢 如果结果只是一个普通的切片,我只会附加到切片的末尾,但是对于2d数组,我似乎必须手动执行很多操作,有没有更简单的方法 编辑:如果需要添加新行,我的方法是: result = append(r
func threeSum(nums []int) [][]int {
result := make([][]int, 1)
result[0] = []int{1, 2, 3}
return result
}
如果我想动态添加一行呢
如果结果只是一个普通的切片,我只会附加到切片的末尾,但是对于2d数组,我似乎必须手动执行很多操作,有没有更简单的方法
编辑:如果需要添加新行,我的方法是:
result = append(result, []int{4, 2, 3})
事后看来,这其实并不坏:如果有人有意见,我很乐意接受。你提出的方式确实是应该怎么做的,当然这是最简单的方式 有一种方法可以通过复制来实现,但这需要您手动分配一个新的切片,因此它通常会慢得多,而且在任何情况下都需要更多的代码
如果你需要在现有的中间或开始的时候添加一个新的列,那么你需要分配一个新的片段,或者,如果你当前的片段有未使用的空间,增加它的长度,在两个操作中将元素从旧的片段复制到新的切片,这样你的新项目需要的插槽就空了,最后直接添加新项目。在最紧凑的情况下,这至少需要3行代码,更多的是边界检查和可选的更高效的路径。
有更简单的方法吗?比什么好?您还没有展示您的实现。