Fork me on GitHub

Go数组初始化-指定元素值

在Go语言中数组是一个值类型(value type)。是真真实实的数组,而不是一个指向数组内存起始位置的指针,也不能和同类型的指针进行转化,这一点严重不同于C语言。所有的值类型变量在赋值和作为参数传递时都将产生一次复制动作。如果将数组作为函数的参数类型,则在函数调用时该参数将发生数据复制。因此,在函数体中无法修改传入的数组的内容,因为函数内操作的只是所传入数组的一个副本。

定义方式如下

1
var arr [n]type

n表示数组长度,type表示数组存储类型。

下面实例中列举了几种常用的数组初始化方法,尤其是需要注意省略号,冒号等使用的方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main

import "fmt"


func main(){
var arr1 [5]int
arr2 := [5]int{1, 2, 3, 4, 5} //指定长度为5,并赋5个初始值
arr3 := [5]int{1, 2, 3} //指定长度为5,对前3个元素进行赋值,其他2个元素为零值
arr4 := [5]int{4: 1} //指定长度为5,对第5个元素(下标为4)赋值
arr5 := [...]int{1, 2, 3, 4, 5} //不指定长度,对数组赋以5个值
arr6 := [...]int{8: 1} //不指定长度,对第9个元素(下标为8)赋值1
fmt.Println(arr1, arr2, arr3, arr4, arr5, arr6)
}

输出:

1
[0 0 0 0 0] [1 2 3 4 5] [1 2 3 0 0] [0 0 0 0 1] [1 2 3 4 5] [0 0 0 0 0 0 0 0 1]
您的鼓励是我持之以恒的动力