无论如何,您可以在多个结构中使用相同的函数来满足接口吗?
例如:
package main
import "fmt"
type Animal interface {
Speak() string
}
type Dog struct {}
func (d Dog) Speak() string {
return "Woof!"
}
type Wolf struct {}
func (w Wolf) Speak() string {
return "HOWWWWWWWWL"
}
type Beagle struct {}
func (b Beagle) Speak() string {
return "HOWWWWWWWWL"
}
type Cat struct {}
func (c Cat) Speak() string {
return "Meow"
}
func main() {
var a Animal
a = Wolf{}
fmt.Println(a.Speak())
}
因为 Wolf 和 Beagle 共享完全相同的函数,所以是否可以编写一次该函数,然后在两个结构之间共享它,以便它们都满足 Animal?
相关分类