数组长度在定义后就不可更改,在声明时长度可以为一个常量或者一个常量表达式
[32]byte // 长度为32的数组,每个元素为一个字节[2*N] struct { x, y int32 } // 复杂类型数组[1000]*float64 // 指针数组[3][5]int // 3行5列的二维整型数组,总共可以存放15个整型元素[2][2][2]float64 // 等同于[2]([2]([2]float64))
for i := 0; i < len(array); i++ {fmt.Println("Element", i, "of array is", array[i])}for i, v := range array {fmt.Println("Array element[", i, "]=", v)}
在Go语言中数组是一个值类型(value type)。所有的值类型变量在 赋值 和 作为参数传递 时都将产生一次复制动作(值传递, 而不是引用传递)
如果将数组作为函数的参数类型,则在函数调用时该参数将发生数据复制. 因此,在函数体中无法修改传入的数组的内容,因为函数内操作的只是所传入数组的一个副本。
package mainimport ("fmt")func modify(array [5]int){array[0] = 10fmt.Println("In modify, array:", array)}func main() {array := [5] int {1,2,3,4,5}modify(array)fmt.Println("In main, array:", array)}
In modify, array: [10 2 3 4 5] In main, array: [1 2 3 4 5]
