本文摘自php中文网,作者V,侵删。

代码实例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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
}
|
报错信息如下:
1 2 | 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)
是个值,且这个值也没有赋给任何变量,所以符号“&”是获取不到地址的。
阅读剩余部分
相关阅读 >>
golang pprof 性能分析工具
golang 通用链接池
模块三 go语言实战与应用-测试的基本规则和流程(上)
golang如何定义一个二维数组
embed小技巧-动态文件更新
golang怎么定时任务
golang 自然语言处理工具(gohanlp)
手撸golang 行为型设计模式 委派模式
go基础及语法(二)
【golana语言社区】window应该开发之--cmd杀进程
更多相关阅读请进入《golang》频道 >>
老貘
一个与时俱进的Go编程知识库。
转载请注明出处:木庄网络博客 » 关于golang中无法获取地址问题的解析