1.
type NokiaPhone struct {
}
func (nokiaPhone NokiaPhone) call() {
fmt.Println("I am Nokia, I can call you!")
}
2.type Books struct{
}
func printBook( book Books ) {
fmt.Println("。。。。。。")
}
1.
type NokiaPhone struct {
}
func (nokiaPhone NokiaPhone) call() {
fmt.Println("I am Nokia, I can call you!")
}
2.type Books struct{
}
func printBook( book Books ) {
fmt.Println("。。。。。。")
}
第一个实际上是一个模拟的面向对象的写法,也就是说,而已使用nokiaphone.Call()这种方式的语法糖来进行调用
第二个则不能,只能使用printBook(book)这种方法调用,但是实际上他们传递的参数的堆栈结构是一样的。具体,可以看Reflect反射包中的Invoke可明一二