iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0
Modern Web

golang後端入門分享系列 第 8

Day8-Go陣列Array

前言

陣列是一種資料結構,裡面裝載的資料必須是同性質的,不能同時裝載著字串又裝載著整數,且建立後陣列後,長度不能改變。如果你有當過兵,把陣列想成一個班,同班的人有相同的元素性質,且每班的長度是固定的,在排隊時,如果有別班的排錯了,就等著倒大霉了。

建立陣列

以下先示範怎麼初始化一個陣列:

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/


上一篇
Day7-Go迴圈
下一篇
Day9-Go切片Slice
系列文
golang後端入門分享30

尚未有邦友留言

立即登入留言