go语法基础与其他语言对比学习(9) | 青训营

76 阅读1分钟

数组

数组的初始化方式(四种)

  • 如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++语言一样