说我有两个结构:两种不同类型如何在使用接口的golang中实现相同的方法?
type First struct {
str string
}
type Second struct {
str string
}
而且我想他们都实现接口A:
type A interface {
PrintStr() //print First.str or Second.str
}
这似乎是多余的,以对第一和第二结构像这样实现:
func (f First) PrintStr() {
fmt.Print(f.str)
}
func (s Second) PrintStr() {
fmt.Print(s.str)
}
有没有办法让所有的实现接口A的结构都有一个实现?像这样的东西,但它似乎并没有工作:
func (a A) PrintStr() {
fmt.Print(a.str)
}
谢谢!
拥有2个相同类型的结构似乎有点多余。 – TheHippo
是的,但这是一个玩具的例子。第一和第二可以共享一些领域而不是其他领域。重点是我想要一个函数以两种不同类型完全相同的方式运行,而不需要重复代码。 – Ekaterina