Go - 陣列
Go 程式語言提供了一種稱為**陣列**的資料結構,它可以儲存固定大小的相同型別元素的順序集合。陣列用於儲存資料集合,但通常將其視為相同型別變數的集合更有用。
與其宣告單獨的變數,例如 number0、number1、... 和 number99,不如宣告一個數組變數,例如 numbers,並使用 numbers[0]、numbers[1] 和 ...、numbers[99] 來表示單個變數。陣列中的特定元素透過索引訪問。
所有陣列都由連續的記憶體位置組成。最低地址對應於第一個元素,最高地址對應於最後一個元素。
宣告陣列
要在 Go 中宣告陣列,程式設計師需要指定元素的型別以及陣列所需的元素數量,如下所示:
var variable_name [SIZE] variable_type
這稱為一維陣列。**arraySize** 必須是大於零的整數常量,而**type** 可以是任何有效的 Go 資料型別。例如,要宣告一個名為**balance** 的 10 元素陣列,型別為 float32,請使用以下語句:
var balance [10] float32
這裡,**balance** 是一個變數陣列,最多可以容納 10 個浮點數。
初始化陣列
您可以在 Go 中逐個初始化陣列,或者使用單個語句進行初始化,如下所示:
var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
花括號 { } 之間的數值數量不能大於我們在方括號 [ ] 之間為陣列宣告的元素數量。
如果您省略陣列的大小,則會建立一個足夠大的陣列來容納初始化。因此,如果您編寫:
var balance = []float32{1000.0, 2.0, 3.4, 7.0, 50.0}
您將建立與上一個示例中完全相同的陣列。以下是如何為陣列分配單個元素的示例:
balance[4] = 50.0
以上語句將陣列中第 5 個元素的值賦為 50.0。所有陣列的第一個元素的索引為 0,也稱為基索引,陣列的最後一個索引為陣列的總大小減 1。以下是我們上面討論的相同陣列的圖示:
訪問陣列元素
透過索引陣列名稱來訪問元素。這是透過在陣列名稱後面方括號中放置元素的索引來完成的。例如:
float32 salary = balance[9]
以上語句將獲取陣列中的第 10 個元素並將該值賦給 salary 變數。以下是一個示例,它將使用上面提到的所有三個概念,即宣告、賦值和訪問陣列:
package main
import "fmt"
func main() {
var n [10]int /* n is an array of 10 integers */
var i,j int
/* initialize elements of array n to 0 */
for i = 0; i < 10; i++ {
n[i] = i + 100 /* set element at location i to i + 100 */
}
/* output each array element's value */
for j = 0; j < 10; j++ {
fmt.Printf("Element[%d] = %d\n", j, n[j] )
}
}
當以上程式碼編譯並執行時,會產生以下結果:
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109
Go 陣列詳解
與陣列相關的概念對於 Go 程式設計師來說至關重要: