新聞中心
數(shù)組是一個由固定長度的特定類型元素組成的序列,一個數(shù)組可以由零個或多個元素組成。因?yàn)閿?shù)組的長度是固定的,所以在Go語言中很少直接使用數(shù)組。

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、孟州網(wǎng)絡(luò)推廣、微信小程序、孟州網(wǎng)絡(luò)營銷、孟州企業(yè)策劃、孟州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供孟州建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
和數(shù)組對應(yīng)的類型是 Slice(切片),Slice 是可以增長和收縮的動態(tài)序列,功能也更靈活,但是想要理解 slice 工作原理的話需要先理解數(shù)組,所以本節(jié)主要為大家講解數(shù)組的使用,至于 Slice(切片)將在《 Go語言切片》一節(jié)中為大家講解。
Go語言數(shù)組的聲明
數(shù)組的聲明語法如下:
var 數(shù)組變量名 [元素?cái)?shù)量]Type
語法說明如下所示:
- 數(shù)組變量名:數(shù)組聲明及使用時的變量名。
- 元素?cái)?shù)量:數(shù)組的元素?cái)?shù)量,可以是一個表達(dá)式,但最終通過編譯期計(jì)算的結(jié)果必須是整型數(shù)值,元素?cái)?shù)量不能含有到運(yùn)行時才能確認(rèn)大小的數(shù)值。
- Type:可以是任意基本類型,包括數(shù)組本身,類型為數(shù)組本身時,可以實(shí)現(xiàn)多維數(shù)組。
數(shù)組的每個元素都可以通過索引下標(biāo)來訪問,索引下標(biāo)的范圍是從 0 開始到數(shù)組長度減 1 的位置,內(nèi)置函數(shù) len() 可以返回?cái)?shù)組中元素的個數(shù)。
var a [3]int // 定義三個整數(shù)的數(shù)組
fmt.Println(a[0]) // 打印第一個元素
fmt.Println(a[len(a)-1]) // 打印最后一個元素
// 打印索引和元素
for i, v := range a {
fmt.Printf("%d %d\n", i, v)
}
// 僅打印元素
for _, v := range a {
fmt.Printf("%d\n", v)
} 默認(rèn)情況下,數(shù)組的每個元素都會被初始化為元素類型對應(yīng)的零值,對于數(shù)字類型來說就是 0,同時也可以使用數(shù)組字面值語法,用一組值來初始化數(shù)組:
var q [3]int = [3]int{1, 2, 3}
var r [3]int = [3]int{1, 2}
fmt.Println(r[2]) // "0" 在數(shù)組的定義中,如果在數(shù)組長度的位置出現(xiàn)“...”省略號,則表示數(shù)組的長度是根據(jù)初始化值的個數(shù)來計(jì)算,因此,上面數(shù)組 q 的定義可以簡化為:
q := [...]int{1, 2, 3}
fmt.Printf("%T\n", q) // "[3]int" 數(shù)組的長度是數(shù)組類型的一個組成部分,因此 [3]int 和 [4]int 是兩種不同的數(shù)組類型,數(shù)組的長度必須是常量表達(dá)式,因?yàn)閿?shù)組的長度需要在編譯階段確定。
q := [3]int{1, 2, 3}
q = [4]int{1, 2, 3, 4} // 編譯錯誤:無法將 [4]int 賦給 [3]int
比較兩個數(shù)組是否相等
如果兩個數(shù)組類型相同(包括數(shù)組的長度,數(shù)組中元素的類型)的情況下,我們可以直接通過較運(yùn)算符(==和 !=)來判斷兩個數(shù)組是否相等,只有當(dāng)兩個數(shù)組的所有元素都是相等的時候數(shù)組才是相等的,不能比較兩個類型不同的數(shù)組,否則程序?qū)o法完成編譯。
a := [2]int{1, 2}
b := [...]int{1, 2}
c := [2]int{1, 3}
fmt.Println(a == b, a == c, b == c) // "true false false"
d := [3]int{1, 2}
fmt.Println(a == d) // 編譯錯誤:無法比較 [2]int == [3]int
遍歷數(shù)組——訪問每一個數(shù)組元素
遍歷數(shù)組也和遍歷切片類似,代碼如下所示:
var team [3]string
team[0] = "hammer"
team[1] = "soldier"
team[2] = "mum"
for k, v := range team {
fmt.Println(k, v)
}代碼輸出結(jié)果:
0 hammer
1 soldier
2 mum
代碼說明如下:
- 第 6 行,使用 for 循環(huán),遍歷 team 數(shù)組,遍歷出的鍵 k 為數(shù)組的索引,值 v 為數(shù)組的每個元素值。
- 第 7 行,將每個鍵值打印出來。
當(dāng)前名稱:創(chuàng)新互聯(lián)GO教程:Go語言數(shù)組詳解
分享地址:http://m.5511xx.com/article/ccocsdd.html


咨詢
建站咨詢
