二维数组切片初始化:
test := [][]int{
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16},
}
n := len(test) // rowsnum
m := len(test[0]) // colsnum
二维数组输出:
for i := 0; i < len(test); i++ {
(test[i])
}
声明二维数组并初始化:
var c [][]int
for i := 0; i < n; i++ {
temp := make([]int, n)
c = append(c, temp)
}
注意,写算法时有个需求,是截取二维数组(矩阵),比如一个4x4的矩阵a,想要得到其左上角2x2的矩阵a11:
var a11 [][]int
for i := 0; i < n/2; i++ {
a11 = append(a11, a[i][0:n/2])
}
本来想写 a[0:n/2][0:n/2],但是其实这个表达式的意思是从二维数组a中取前n/2行,在从取出的二维数组中再次取n/2行。并不是我以为的二维数组切片。(天nao真chou了