數組的定義
var 數組變量名 [元素數量]T
比如:
var a [5]int
。
注意數組的長度必須是常量,且長度屬于數組類型的一部分,定義之後不允許修改長度。
是以
[5]int
和
[10]int
是不同的類型。
var arr1 [3]int
var arr2 [4]int
arr1 = arr2 //錯誤,此時arr1和arr2是不同的類型
數組可以通過下标進行通路,下标是從
開始,最後一個元素下标是:
len-1
。
數組的初始化方式
數組的初始化方式有很多。
方式一
func main(){
var arr [3]int = [3]int{1,2,3}
//不允許寫成 var arr [3]int = {1,2,3}
fmt.Println(arr) //[1 2 3]
}
方式二
func main(){
var arr [3]int
arr[0] = 1
arr[1] = 2
arr[2] = 3
fmt.Println(arr) //[1 2 3]
}
方式三
這是方式一的一種簡化形式。
func main(){
var arr = [3]int{1,2,3}
fmt.Println(arr) //[1 2 3]
}
方式四
方式一的簡化形式,也是用得最多的一種方式。
注意:
:=
符号隻允許在函數中使用,即隻能在聲明局部變量的時候使用,而
var
沒有這個限制。
func main(){
arr := [3]int{1,2,3}
fmt.Println(arr) //[1 2 3]
}
方式四
讓編譯器根據初始值的個數自行推斷數組的長度。以
...
來代替
[]
中的數字,注意若
[]
中為空則表示為切片。
func main(){
var arr = [...]int{1,2,3}
fmt.Println(arr) //[1 2 3]
}
方式五
利用指定索引值的方式來初始化。
func main(){
arr := [5]int{0:1,4:3} //例如 0:1 表示數組下标0對應的值為1
fmt.Println(arr) // [1 0 0 0 3]
}