Is it possible to bind a previously declared function to more than one struct? Ex:
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()
}
The main reason is that I don't want to repeat SayHi
implementation for each type that needs it, so this won't fulfill as an answer:
type A struct {}
func A SayHi() {
fmt.Println("hi!")
}
type B struct {}
func B SayHi() {
fmt.Println("hi!")
}
In other words, how to borrow|inherit|share|bind methods between structs?
PS: Not sure what terminology Go uses for that, but it seems interfaces doesn't apply to this case since it would require methods to be re implemented for each struct.