开发者学堂课程【Go语言核心编程 - 基础语法、数组、切片、Map:二维数组使用和内存布局】与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/625/detail/9653
二维数组使用和内存布局(二)
三、二维数组的使用方式2
使用方式2:直接初始化
1、声明:
var 数组名[大小I大小类型= [大小I大小]类型{{初值.小{初值..}}
2、赋值
(有默认值,比如int 类型的就是0)
3、使用演示
定义数组 arr3,有两个一维数组,三个值,int 中赋值{1,2,3}, {4,5,6},
代码为:
fmt .Println()
var arr3 [2][3]int = [2][3]int{{1,2,3}, {4,5,6}}
fmt. Println("arr3=", arr3)
运行结果为:
arr3=[[1 2 3][4 5 6]]
4、说明:二维数组在声明/定义时也对应有四种写法[和一维数组类似
1.var 数组名[大小][大小]类型= [大小][大小]类型{{初值…},{初值..}}
这种数组写法前面已经提过了。
2.var 数组名[大小][大小]类型= […][大小]类型{{初值…},{初值…}}
前面的[大小]可以不写用,用[…]代替,
有点像一维数组让他自己算这个二维数组中有几个元素,但是后面的[大小]不能省略,因为前面的[...]可以根据赋初值的时候知道一共赋值几组元素进去,这样就能推导出[…],
比如在刚才代码中可以写成
var arr3 [2][3]int =[…][3]int{{1,2,3}, {4,5,6}}。
3.var 数组名= [大小][大小]类型{{初值…},{通值..}}
这种写法就是省略前面的[大小][大小]类型,因为后面的可以直接赋值给前面的数组,而前面的数组也能直接接收了,所以可以省略前面的那部分。
像刚才的代码也能
var arr3 = [2][3]int{{1,2,3}, {4,5,6}},
甚至还可以把 var 去掉,但是去掉后必须加上“:”符号,这叫类型推导,如果保留var则可以去掉:,前面基础时讲过。
4.var 数组名= […][大小]类型{{初值…},{通值..}}
以上讲解了二维数组的两种使用方式和内存布局,后面将讲解二维数组的应用以及注意事项。