Go語言數組
Go編程語言提供稱為數組的數據結構,其可存儲相同類型的元素的一個固定大小的連續集合。數組用於存儲數據的集合,但它往往是更加有用認為數組作為相同類型的變量的集合。
相反,聲明單個變量,如number0, number1, ...和number99,聲明一個數組變量,如號碼和使用numbers[0], numbers[1]...numbers[99]表示單個變量。在數組的特定元素是由一個索引進行訪問。
所有數組由連續的內存位置。最低的地址對應於第一元素和最高地址為最後一個元素。
聲明數組
要聲明在Go語言數組,程序員指定元素的類型以及如下的數組所需元件的數目:
var variable_name [SIZE] variable_type
這就是所謂的一維數組。arraySize必須是一個非零整數常數,類型可以是任何有效的數據類型。例如,要聲明一個10個元素的數組為balance,類型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
以上語句用50.0的數值作為數組中的元素分配到第5個位置。所有數組通常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語言中,應該需要了解更多的細節。有下列關係到數組幾個重要的概念Go程序員是應該清楚的:
概念 | 描述 |
---|---|
多維數組 | Go支持多維數組。多維數組的最簡單的形式是二維數組 |
通過數組傳遞給函數 | 可以通過指定數組的名稱不使用索引傳遞給函數的指針數組 |