golen()和make()函數(shù)是如何工作的?由于該語言缺乏對泛型和函數(shù)重載的支持,我不知道這怎么func len(v Type) int可能。也是如此func make(Type, size IntegerType) Type。我似乎無法在 go 源代碼中找到該函數(shù),我設(shè)法找到的最接近的是這個(gè)
2 回答

絕地?zé)o雙
TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
該len
和make
功能是語言規(guī)范的一部分,內(nèi)置的編譯器。對內(nèi)置函數(shù)的運(yùn)行時(shí)支持在運(yùn)行時(shí)包中。
文件builtin.go僅用于文檔。它沒有編譯。

Helenr
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
由于 Go 的嚴(yán)格類型,編譯器總是知道你傳遞給len
函數(shù)的類型,因此它會(huì)為不同的類型傳遞給不同的函數(shù),這可以在編譯時(shí)確定。在大多數(shù)情況下,您試圖獲取切片的長度,在這種情況下,該len
函數(shù)只需要返回該len
切片結(jié)構(gòu)的字段(因?yàn)榍衅瑢?shí)際上是一個(gè)結(jié)構(gòu));字符串相同。
編譯器有各種各樣的技巧,編譯器生成的匯編代碼很少遵循您鍵入的完全相同的邏輯。
- 2 回答
- 0 關(guān)注
- 290 瀏覽
添加回答
舉報(bào)
0/150
提交
取消