慕桂英3389331
2022-01-10 15:08:16
正如golang 中的 Array doc所說:Go 的數(shù)組是值。數(shù)組變量表示整個數(shù)組;它不是指向第一個數(shù)組元素的指針(就像 C 中的情況一樣)。這意味著當(dāng)您分配或傳遞數(shù)組值時,您將復(fù)制其內(nèi)容。眾所周知,當(dāng)一個數(shù)組被創(chuàng)建時,會分配一塊內(nèi)存來保存這個數(shù)組中包含的值:( 來源:golang.org)并且C中的數(shù)組名指向第一個內(nèi)存地址,然后它可以計算給定數(shù)組索引的地址并修改或讀取該索引的值。但是這個文檔說golang實(shí)現(xiàn)與此不同。我很困惑golang方式有什么優(yōu)勢以及它如何以目前的方式實(shí)現(xiàn)。任何人都可以告訴我這個,非常感謝!
2 回答

繁星淼淼
TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個贊
在 Golang 中有 3 種類型可以處理數(shù)組。(T = Go 中的任何類型,如字符串、int 等)(n = 自然數(shù))
數(shù)組(固定數(shù)組)[n]T
var array [5]int array[1] = 2 fmt.Println(array)
切片(動態(tài)數(shù)組)[]T
映射(關(guān)聯(lián)數(shù)組)[T]T
Go 的數(shù)組是值。因?yàn)槟皇褂弥岛玩I是自然數(shù)序列。Golang 以數(shù)組類型保存數(shù)組長度,因?yàn)閿?shù)組是固定的(在聲明之后),Golang 可以創(chuàng)建一塊具有數(shù)組長度的內(nèi)存。
你也可以在這里詢問 Golang 基礎(chǔ)設(shè)施。https://github.com/golang/go/wiki/Questions

幕布斯7119047
TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個贊
如果我們從文檔中獲取這個例子
var a [4]int
a[0] = 1
i := a[0]
// i == 1
根據(jù)文檔,他們說在 C 中,如果您要訪問 var a,您將獲得指向a[0].
我不確定優(yōu)勢或?qū)嵤┧囊馑?/p>
- 2 回答
- 0 關(guān)注
- 214 瀏覽
添加回答
舉報
0/150
提交
取消