猿问

跨多个结构重用函数以满足接口

无论如何,您可以在多个结构中使用相同的函数来满足接口吗?


例如:


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?


九州编程
浏览 148回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答