funcmain() { // 第一种情况,结构体初始化变量,结构体实现接口 var c1 Ducker = Cat{} c1.Quack()
// 第二种情况,结构体指针初始化变量,结构体实现接口 var c2 Ducker = &Cat{} c2.Quack()
// 第三种情况,结构体初始化变量,结构体指针实现接口 // compiler // cannot use (Dog literal) (value of type Dog) as Ducker value in variable declaration: // missing method Quack (Quack has pointer receiver) // var d1 Ducker = Dog{} // d1.Quack()
// 第四种情况,结构体指针初始化变量,结构体指针实现接口 var d2 Ducker = &Dog{} d2.Quack() }