golang类之间方法调用
原创
阳阳船长
©著作权
文章标签
其它
文章分类
运维
©著作权归作者所有:来自51CTO博客作者阳阳船长的原创作品,请联系作者获取转载授权,否则将追究法律责任
package main
import "fmt"
import "reflect"
type C struct {
A string
}
func (c *C) Read() error {
fmt.Println("C.Read" )
return nil
}
type D struct {
B string
}
func (d *D) Read() string {
fmt.Println("D.Read" )
return d.B
}
func (c *C) ReadOther(inf interface{}) error {
ref := reflect.ValueOf(inf)
method := ref.MethodByName("Read")
if method.IsValid() {
r := method.Call(make([]reflect.Value,0))
fmt.Println(r[0].String())
}
return nil
}
func main() {
c := &C{A:"iii"}
d := &D{B:"ddd"}
c.ReadOther(d)
}