关于golang中无法获取地址问题的解析

发布时间:2022-05-15 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了关于golang中无法获取地址问题的解析脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

代码实例如下:

func main() {
    VAR a Integer = 1
    var b Integer = 1
    sum := a.Add(b)
    fmt.PRintln(sum)

    var i interface{} = a
    sum = i.(Integer).Add(b) // 报错
    fmt.Println(sum)
}

tyPE Integer int

func (a *Integer) Add(b Integer) Integer {
    return  *a + b
}

报错信息如下:

test\testVar.go:16:19: cannot call pointer method on i.(Integer)
test\testVar.go:16:19: cannot take the address of i.(Integer)

出现这种情况是因为Add方法需要一个Integer指针类型的接收器,而我们传过去的i.(Integer)是个值,且这个值也没有赋给任何变量,所以符号“&”是获取不到地址的。

正确的方式是将i.(Integer)赋值给一个变量,或者把方法接收器改成普通类型。

代码示例如下:

   var i interface{} = a
    c := i.(Integer)
    sum = c.Add(b)
    fmt.Println(sum)

或者

func (a Integer) Add(b Integer) Integer {    
return  a + b
}

相关文章教程推荐:golang教程

以上就是关于golang中无法获取地址问题的解析的详细内容,更多请关注脚本宝典其它相关文章!

脚本宝典总结

以上是脚本宝典为你收集整理的关于golang中无法获取地址问题的解析全部内容,希望文章能够帮你解决关于golang中无法获取地址问题的解析所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。