我对第15行无效的原因感到困惑。为什么不能取消指向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 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
这是因为Int是具有未导出字段的结构。当按值将结构传递给函数时,就是在对其进行复制。在围棋规范指出,这个是合法的
...要么必须导出T的所有字段,要么赋值必须在声明T的同一包中。换句话说,仅当程序的每个字段都可以合法地分配结构的每个字段时,才可以将结构值分配给结构变量。
- 1 回答
- 0 关注
- 282 浏览
添加回答
举报
0/150
提交
取消