Go中的數組
數組是一系列相同類型的項目。
我們可以這樣定義一個數組:
1 | var myArray [3]string //一個包含3個字符串的數組 |
你可以通過以下方式初始化數組:
1 | var myArray = [3]string{"First", "Second", "Third"} |
在這種情況下,你還可以讓Go為你計算項目的數量:
1 | var myArray = [...]string{"First", "Second", "Third"} |
數組只能包含相同類型的值。
數組的大小是固定的,你必須明確定義數組的長度。這是數組的一部分的類型。同時,你不能使用變量來設置數組的長度。
由於這個限制,數組在Go中很少直接使用,而是使用切片(稍後會講到)。切片在內部使用數組,所以了解數組的工作原理還是必要的。
你可以使用方括號的表示法來訪問數組中的項目,這種表示法我們之前在字符串中已經使用過了,用來訪問單個字符:
1 | myArray[0] //索引從0開始 |
你可以在數組的特定位置設置新的值:
1 | myArray[2] = "Another" |
你可以使用len()
函數獲取數組的長度:
1 | len(myArray) |
數組是值類型。這意味著複製一個數組:
1 | anotherArray := myArray |
或者把一個數組作為參數傳遞給函數,或者從函數中返回數組,都會創建原始數組的一個副本。
這與其他一些編程語言不同。
讓我們舉個簡單的例子,把一個新的值賦給數組中的一個項目。你會發現複製的數組並沒有改變:
1 | var myArray = [3]string{"First", "Second", "Third"} |
請記住,你只能向數組添加一種類型的項目,例如設置myArray[2] = 2
將引發錯誤。
在低層級上,元素在內存中連續存儲。