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

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


咨詢
建站咨詢
