1 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
在第二種情況下您會(huì)收到一條錯(cuò)誤消息,因?yàn)槟鷩L試對(duì)函數(shù)調(diào)用的返回值(即sha1.Sum()
)進(jìn)行切片:
sha1.Sum(([]byte)(uf.Pwd))[:]
函數(shù)調(diào)用的返回值是不可尋址的。提醒一下,(僅)以下是可尋址的(取自Spec: Address operators):
...變量、指針間接或切片索引操作;或可尋址結(jié)構(gòu)操作數(shù)的字段選擇器;或可尋址數(shù)組的數(shù)組索引操作。作為可尋址性要求的一個(gè)例外,
x
也可能是(可能帶括號(hào)的)復(fù)合文字。
對(duì)數(shù)組進(jìn)行切片需要該數(shù)組是可尋址的。規(guī)格:切片表達(dá)式:
如果切片操作數(shù)是一個(gè)數(shù)組,它必須是可尋址的,并且切片操作的結(jié)果是一個(gè)與數(shù)組具有相同元素類型的切片。
您的第一種情況有效,因?yàn)槟紫葘⒎祷氐臄?shù)組存儲(chǔ)在可尋址的局部變量中。
切片數(shù)組要求數(shù)組可尋址,因?yàn)榍衅瑫?huì)生成一個(gè)切片,該切片不會(huì)復(fù)制數(shù)組的數(shù)據(jù),但會(huì)創(chuàng)建一個(gè)共享后備數(shù)組且僅指向/引用它的切片。
- 1 回答
- 0 關(guān)注
- 198 瀏覽
添加回答
舉報(bào)