1 回答

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個贊
Go 中的數(shù)組是固定大小的:一旦你在 Go 中創(chuàng)建了一個數(shù)組,以后就不能改變它的大小。這是這樣一種程度,即一個陣列的長度是陣列類型的一部分(這意味著類型[2]int和[3]int2層不同的類型)。也就是說,某些數(shù)組類型的值的長度總是相同的,并且由其類型決定。例如,類型[100]int為的數(shù)組值的長度始終為100,(可以使用內(nèi)置函數(shù)進(jìn)行查詢len())。
規(guī)格:數(shù)組類型:
長度是數(shù)組類型的一部分;它必須評估為可由 type 值表示的非負(fù)常量int。a可以使用內(nèi)置函數(shù)len發(fā)現(xiàn)數(shù)組的長度。
如果您正在尋找“設(shè)置了多少元素?”的答案,Go 中不會跟蹤該問題。您要查找的“數(shù)組中的總項(xiàng)數(shù)”也始終與數(shù)組長度相同:當(dāng)您在 Go 中創(chuàng)建數(shù)組時,數(shù)組中的所有元素都被初始化為元素類型的零值(除非另有說明)例如,通過使用復(fù)合文字)。
例如在這一行之后:
var arr [100]int
該數(shù)組arr已經(jīng)有 100int秒,全部都是0(因?yàn)檫@是 type 的零值int)。在以下行之后:
var arr2 = [3]int{1, 2, 3}
該陣列arr2具有3個int元素,是1,2和3。在以下行之后
var arr3 = [...]bool{3: true}
陣列arr3有4個bool元素,感false,false,false和true(false是類型的零值bool,我們只指定的第四元件是true其在索引3)。
如果您詢問切片,您的問題可能更有意義:
切片是底層數(shù)組的連續(xù)段的描述符,并提供對來自該數(shù)組的元素的編號序列的訪問。
所以基本上切片是數(shù)組某些(連續(xù))部分的“視圖”。切片頭或描述符包含指向它在數(shù)組中描述的部分的第一個值的指針,它包含長度和容量(這是長度可以擴(kuò)展到的最大值)。
- 1 回答
- 0 關(guān)注
- 670 瀏覽
添加回答
舉報(bào)