我對(duì)第15行無(wú)效的原因感到困惑。為什么不能取消指向big.Int的指針,而可以取消指向int的指針?package mainimport ( "fmt" "big")func main() { var c *int = getPtr() fmt.Println(c) fmt.Println(*c) var d *big.Int = big.NewInt(int64(0)) fmt.Println(d) // does not compile - implicit assignment of big.Int // field 'neg' in function argument //fmt.Println(*d)}func getPtr() *int { var a int = 0 var b *int = &a return b}
1 回答

慕無(wú)忌1623718
TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
這是因?yàn)镮nt是具有未導(dǎo)出字段的結(jié)構(gòu)。當(dāng)按值將結(jié)構(gòu)傳遞給函數(shù)時(shí),就是在對(duì)其進(jìn)行復(fù)制。在圍棋規(guī)范指出,這個(gè)是合法的
...要么必須導(dǎo)出T的所有字段,要么賦值必須在聲明T的同一包中。換句話說(shuō),僅當(dāng)程序的每個(gè)字段都可以合法地分配結(jié)構(gòu)的每個(gè)字段時(shí),才可以將結(jié)構(gòu)值分配給結(jié)構(gòu)變量。
- 1 回答
- 0 關(guān)注
- 311 瀏覽
添加回答
舉報(bào)
0/150
提交
取消