代码实例如下:
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)
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
}
本篇文章来至:IT社区