我有一个定义方法的接口。我有一个实现此接口的结构。在其中,我已经从该接口实现了方法,并且还定义了其他方法。
例如:
package main
import (
"fmt"
)
type Animal interface {
MakeNoise()
}
type Dog struct {
color string
}
/* Interface implementation */
func (d *Dog) MakeNoise() {
fmt.Println("Bark!")
}
/* End Interface implementation */
func (d *Dog) WagTail() {
fmt.Println(d.color + " dog: Wag wag")
}
func NewDog(color string) Animal {
return &Dog{color}
}
func main() {
dog := NewDog("Brown")
dog.MakeNoise()
dog.WagTail()
}
在操场上:https : //play.golang.org/p/B1GgoNToNl_l
在此,WagTail()不是Animal接口的一部分,但属于Dog结构。运行此代码会出现错误
dog.WagTail未定义(动物类型没有字段或方法WagTail)。
有没有一种方法可以使结构坚持接口并定义其自己的方法?
喵喵时光机
繁花如伊
相关分类