帅帅男孩 发表于 2018-9-21 06:16:00

golang interface类型的动态绑定

  golang其interface类型, 实现了动态绑定.
  

import "fmt"  

  
type ITest interface {
  
   Test()
  
}
  

  
type A int
  

  
func (a *A) Test() {
  
   fmt.Println(a)
  
}
  

  
func print(t ITest) {
  
   fmt.Printf("%T", t)
  
}
  

  
func main() {
  
   a := A(1)
  
   print(&a)
  
}
  

  输出结果是:
  

*main.A  

  尤其注意, main函数中, print(&A), 如果传入A, 返回错误: "method has pointer receiver"
  这里面的差别, 可以参考 http://blog.csdn.net/timemachine119/article/details/54927121


页: [1]
查看完整版本: golang interface类型的动态绑定