在 go 中,可通过 `append(slice, otherslice...)` 语法将一个二维切片(如 `[][]string`)整体追加到另一个同类型二维切片末尾,其中 `...` 将目标切片展开为可变参数。
Go 的 append() 函数原生只接受一维切片(即 []T 类型)作为参数,因此直接传入 [][]string 会导致编译错误:cannot use myArray (type [][]string) as type []string in append。解决的关键在于理解 ... 操作符的作用——它会将切片的每个元素作为独立参数传递给函数,从而匹配 append([][]string, [][]string...) 的签名。
以下是一个完整示例:
package main
import "fmt"
func main() {
a := [][]string{{"a", "b"}, {"c", "d"}}
b := [][]string{{"1", "2"}, {"3", "4"}}
// ✅ 正确:使用 ... 展开 b,逐个追加其子切片
a = append(a, b...)
fmt.Println(a)
// 输出: [[a b] [c d] [1 2] [3 4]]
}⚠️ 注意事项:
总结:append(dst, src...) 是 Go 中拼接多维切片最简洁、最惯用的方式,核心在于正确使用 ... 操作符进行参数展开。掌握这一模式,可高效处理切片合并、构建动态二维数据结构等常见任务。