做力扣时,发现go语言对二维数组的操作和我想得有些出入,只好记录一下。

一、初始化一个二维数组

这种写法是可以的:

res:=[2][2]int{}

以下这种写法会报错:

m:=2
n:=2
res:=[m][n]int{}

所以要像以下方法这么定义:

m:=2
n:=2
res:=make([][]int,m)
for i:=range res{
	res[i]=make([]int,n)
}

唔,我甚至有点怀念c++。

二、给定一个二维数组,判断长和宽

假设给定res数组是3*4的,如何用程序判断出长和宽呢?

res := [3][4]int{{1,2,3,4},{1,2,3,4},{1,2,3,4}}
fmt.Println(len(res))   //这是打印第一个维度,本例子为3
fmt.Println(len(res[i]))  //这是选取某一行,并打印长度,i不越界即可,每一行的长度都等于数组长度