Скажем, у меня две структуры:
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)
}
Спасибо!