[Go] 陣列(Array)
前言
陣列是一個有著編號的序列(索引值0為開頭),陣列裡的每個元素都有相同的單一型別,元素的型態及個數決定了陣列的型態。
宣告
宣告陣列時,在[]
內放入元素個數,並且宣告元素的資料型態,索引值由0
開始。
如:宣告一個放3個integer的陣列(容器)
1 |
|
也可在上述範例放入{}
,必須採短語法的方式。
1 |
|
如果賦值的數量比陣列大小還少,會自動給予初值,就是從編號
0
開始填。
也可以使用
...
,或者給予一個空陣列,只寫[]
,讓編譯器自動判斷數量
1 |
|
分行宣告
有時陣列可能會太長而無法用一行來表示,可以用下面的方式來分行:
1 |
|
如果宣告的元素數量超過
[]
中指定的數量,那麼會有out of bounds
的編譯錯誤。
錯誤宣告
若採用一般宣告的方式,會報錯。
1 |
|
檢視長度
使用len()
檢視陣列長度(或做容器大小)
1 |
|
指定元素
指定某個位置的值
可針對某個位置的元素進行賦值
1 |
|
搭配for
loop
1 |
|
for range
除了一般方法,也可以用for index, value range
1 |
|
比較簡潔的方式
若for
不需要索引的情況下,可以採用_
避免因為定義index
卻未使用,導致編譯器報錯的問題。
1 |
|
_
為Go中的blank identifier
陣列的比較
要比較不同陣列長度與陣列內的元素,需要型態相同才可以做比較,如果將 [5]int
與 [10]int
做比較,編譯器編譯時會發生 mismatched types
的錯誤訊息,而指定陣列給另一陣列時,也必須是相同型態的陣列。
巢狀陣列
如果想要做一個多維陣列,可以使用巢狀陣列來完成。
如: 建立一個2X2的陣列
1 |
|