陣列是一種資料結構,裡面裝載的資料必須是同性質的,不能同時裝載著字串又裝載著整數,且建立後陣列後,長度不能改變。如果你有當過兵,把陣列想成一個班,同班的人有相同的元素性質,且每班的長度是固定的,在排隊時,如果有別班的排錯了,就等著倒大霉了。
以下先示範怎麼初始化一個陣列:
package main
import (
"fmt"
)
func main() {
var count [3]int64
fmt.Println(count)// [0 0 0]
}
在宣告一個陣列時,其方法跟宣告整數或字串差不多,前面有說陣列裡裝載著同性質的元素,所以一上面的例子,宣告的陣列裡會全部都是64位元的整數,而在 int64 前,有一個中括號,這就是陣列的形式,裡面的數字三,就是陣列的長度,裡面只能裝三個元素,因為沒有填入元素,所以會印出 default 值。再來就是如何填入這些元素了:
package main
import (
"fmt"
)
func main() {
var count [3]int64
count[0] = 1
count[1] = 2
count[2] = 3
count2 := [3]int64{4,5,6}
fmt.Println(count) // [1 2 3]
fmt.Println(count2) // [4 5 6]
}
這裡介紹兩種填入的方法,第一種在宣高一個陣列後,我們依照索引(index)來填入其數值。第二種是在宣高時,在變數型態後,帶一個大括號,並填入陣列的數值。
在上一個章節介紹過 Go 的 for 迴圈,for 使用迭代器,為一種走訪容器的方法,藉由此方法,程式設計師不需要知道陣列內部的結構,就可以走訪容器內部的元素:
package main
import (
"fmt"
)
func main() {
var count [3]int64
count[0] = 1
count[1] = 2
count[2] = 3
for index, value := range count {
fmt.Println(fmt.Sprintf("index%d: %d",index, value))
}
}
可以看一下印出的結果:
index0: 1
index1: 2
index2: 3
我們藉由迭代器的方法,可以印出陣列中每個 index 所代表的元素為多少。
而因為 Go 語言一旦宣告變數後,就必須得使用,但當你今天要使用迭代器印出陣列裡面的值時,又不需要 index,那可以用底線來取帶變數:
package main
import (
"fmt"
)
func main() {
var count [3]int64
count[0] = 1
count[1] = 2
count[2] = 3
for _, value := range count {
fmt.Println(fmt.Println(value))
}
}
藉由此方法,即可不必為 index 宣告一個變數。
相反的,如果只想取 index,就不需宣告 value:
for index := range count {
fmt.Println(index)
}
結果為:
0
1
2
今天介紹了 Go 語言的陣列,明天換介紹他的朋友切片(Slice),感謝今天的閱讀!
https://opensourcedoc.com/golang-programming/array-slice/