天天看點

【Golang】Go語言數組定義與初始化方式

數組的定義

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]
}