数组
数组的初始化方式(四种)
- 如var arr1 [3]int = [3]int{3,6,9},可知相比其他语言都是类型后置,然后表示数组里数组元素数量的[]也放在了类型前面。
- var arr2 = [3]int{1,4,7},则是省略了变量类型,由数组元素赋值来自动判断
- var arr3 = [...]int{4,5,6,7},利用了跟Java一样的多参数标识符 ... 来省略了数组数量
- var arr4 = [...]int{2:66,0:33,1:99,3:88} {}里的key:value形式的key对应下标,value则表示该索引下的数组元素的值。
数组的遍历
- 普通for循环
- 键值循环 (键值循环)for range结构是Go语言特有的一种的迭代结构,在许多情况下都非常有用,for range 可以遍历数组、切片、字符串、map 及通道,for range 语法上类似于其它语言中的 foreach 语句,一般形式为:
for key, val := range coll {
...
}
注意:
- (1)coll就是你要的数组
- (2)每次遍历得到的索引用key接收,每次遍历得到的索引位置上的值用val
- (3)key、value的名字随便起名 k、v key、value
- (4)key、value属于在这个循环中的局部变量
- (5)你想忽略某个值:用 _ 接收就可以了
注意事项
- 长度属于类型的一部分
- Go中数组属值类型,在默认情况下是值传递,因此会进行值拷贝
- 如想在其它函数中,去修改原来的数组,可以使用引用传递(指针方式)。
- 跟c/c++语言一样