栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

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

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于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 intfunc (a *Integer) Add(b Integer) Integer {    return  *a + b}

报错信息如下:

testtestVar.go:16:19: cannot call pointer method on i.(Integer)testtestVar.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中无法获取地址问题的解析的详细内容,更多请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/794191.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号