Go的二维数组是数组的数组,二维切片是切片的切片。
首先二维数组可以这样定义:
dp := [2][2]int{}
但是这个长度必须是写死的常量,如果这样定义就会报错,因为用了变量。
m := 2
n := 2
dp := [m][n]int{}
如果一定要用变量,那就只能用切片。
make( []Type, size, cap )
答案是只能用切片的切片来定义,也就是先定义一个维度的二维切片,再用一个循环定义切片的切片:
leng := 4
a :=make([][]int ,leng)
for i:=0;i<4;i++{
a[i]=make([]int,leng)
}
虽然这个循环可以和双循环取值一起用,但是怎么说都还是没有其他语言定义二维数组那么方便,必须从0开始循环。
更多维度的切片同理。