日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)GO教程:Go語言數(shù)組詳解

數(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