說我有兩個結構:兩種不同類型如何在使用接口的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