是否可以将先前声明的函数绑定到多个结构?前任:
package main
import "fmt"
// very useful function both A and B should have
func SayHi() {
fmt.Println("hi!")
}
type A struct {} // A needs SayHi :(
type B struct {} // B needs SayHi :(
func main() {
a := A{}
a.SayHi()
b := B{}
b.SayHi()
}
主要原因是我不想为SayHi需要它的每种类型重复实现,所以这不能作为答案:
type A struct {}
func A SayHi() {
fmt.Println("hi!")
}
type B struct {}
func B SayHi() {
fmt.Println("hi!")
}
换句话说,如何在结构之间借用|继承|共享|绑定方法?
PS:不确定 Go 使用什么术语,但似乎接口不适用于这种情况,因为它需要为每个结构重新实现方法。
猛跑小猪
相关分类