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行代码,更多的是边界检查和可选的更高效的路径。

有更简单的方法吗?比什么好?您还没有展示您的实现。