Go学习--数组

                                               数组

数组是具有相同唯一类型的一组已编号且长度固定的数据项序列;这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。数组长度必须是一个常量表达式,并且必须是一个非负整数。数组长度也是数组类型的一部分,所以[5]int和[10]int是属于不同类型的。

数组声明格式:

var array [len]type ;  或者 array := [len]type{} 注意:这里的{}是必须的

ep:

 var names [5]string; 或者 array := [5]string{}

获取数组长度:

var arr [5]int or arr := [5]int{} 

ep:

len(arr) //5

range遍历数组:

arr := [5]int{1, 2, 3, 4}

ep:

for i, v := range arr {

  //i 为index, v为value

  //如果i在这里不使用,则不能这样使用,不然编译会报错, ep: for _, v := range arr {}

}

注意:这里的value只是值拷贝,不能在这里更改数组的值。

range的用法细节:

1、for i,v := range arr { }

2、var i,v int

       for i,v = range arr { }

1和2的却别在于,1是让定义i,v并同时接收range返回的值, 2则是用两个定义好的变量去接收range返回的值。

注意:Go语言中数组是一种值类型,所以可以通过new关键字来创建

var arr1 = new([5]int)  or arr1 := new([5]int)

var arr2 [5]int  or arr2 := [5]int{}

区别:

arr1的类型是: *[5]int,  arr2的类型是[5]int


数组字面量:

var arrKeyValue = [5]string{3: "xuechao", 4: "liu"} //这里讲这个数组的第4个和第5个元素分别指定为了"xuechao", "liu", 3和4分别代表为数组的索引

or:

var arr = [4]{1,2,3,4}  or  arr := [4]int{1,2,3,4}

将数组传递给函数:

如果传递一个大的数组,则会消耗很多内存,有两种方法可以解决:

1,传递数组的指针

2,传递数组的切片


多维数组的声明并初始化:

var arrs= [5][10][4]int{{{1, 2}, {2, 3}}, {{3, 4}, {4, 5}}}

你可能感兴趣的:(Go学习--数组)