一個數組(Array)就是一個能夠容納若干類型相同的元素的容器。這個容器的大小(即數組的長度)是固定的,且是體如今數組的類型字面量之中的。好比,咱們聲明瞭一個數組類型:數組
type MyNumbers [3]int
注:類型聲明語句由關鍵字type
、類型名稱和類型字面量組成。函數
所謂類型字面量,就是用於表示某個類型的字面表示(或稱標記方法)。相對的,用於表示某個類型的值的字面表示可被稱爲值字面量,或簡稱爲字面量。好比以前提到過的3.7E-2
就可被稱爲浮點數字面量。 類型字面量[3]int
由兩部分組成。第一部分是由方括號包裹的數組長度,即[3]
。這也意味着,一個數組的長度是該數組的類型的組成部分,是固定不變的。該類型字面量的第二個組成部分是int
。它表明了該數組能夠容納的元素的類型。說到這裏,上面這條類型聲明語句其實是爲數組類型[3]int
聲明瞭一個別名類型。這使得咱們能夠把MyNumbers
當作數組類型[3]int
來使用。spa
咱們表示這樣一個數組類型的值的時候,應該把該類型的類型字面量寫在最左邊,而後用花括號包裹該值包含的若干元素。各元素之間以(英文半角)逗號分隔,即:code
[3]int{1, 2, 3}
如今,咱們把這個數組字面量賦給一個名爲numbers
的變量:索引
var numbers = [3]int{1, 2, 3}
注:這是一條變量聲明語句。它在聲明變量的同時爲該變量賦值。字符串
另外一種便捷方法是,在其中的類型字面量中省略表明其長度的數字,像這樣:源碼
var numbers = [...]int{1, 2, 3}
這樣就能夠免去咱們爲填入那個數字而數出元素個數的工做了。容器
接下來,咱們能夠很方便地使用索引表達式來訪問該變量的值中的任何一個元素,例如:變量
numbers[0] // 會獲得第一個元素 numbers[1] // 會獲得第二個元素 numbers[2] // 會獲得第三個元素
注:索引表達式由字符串、數組、切片或字典類型的值(或者表明此類值的變量或常量)和由方括號包裹的索引值組成。在這裏,索引值的有效範圍是[0, 3)。也就是說,對於數組來講,索引值既不能小於0也不能大於或等於數組值的長度。另外要注意,索引值的最小有效值老是0,而不是1。
相對的,若是咱們想修改數組值中的某一個元素值,那麼可使用賦值語句直接達到目的。例如,咱們要修改numbers
中的第二個元素的話,如此便可:方法
numbers[1] = 4
雖然數組的長度已經體如今了它的類型字面量,可是咱們在不少時候仍然須要明確的得到它,像這樣:
var length = len(numbers)
注:len
是Go語言的內建函數的名稱。該函數用於獲取字符串、數組、切片、字典或通道類型的值的長度。咱們能夠在Go語言源碼文件中直接使用它。
最後,要注意,若是咱們只聲明一個數組類型的變量而不爲它賦值,那麼該變量的值將會是指定長度的、其中各元素均爲元素類型的零值(或稱默認值)的數組值。例如,如有這樣一個變量:
var numbers2 [5]int
則它的值會是
[5]int{0, 0, 0, 0, 0}