为了账号安全,请及时绑定邮箱和手机立即绑定

在Go中解引用指针

在Go中解引用指针

Go
白衣染霜花 2021-04-05 17:15:58
我对第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的同一包中。换句话说,仅当程序的每个字段都可以合法地分配结构的每个字段时,才可以将结构值分配给结构变量。


查看完整回答
反对 回复 2021-04-26
  • 1 回答
  • 0 关注
  • 260 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信