Не понимаю для чего нужны интерфейсы в go, пересмотрел куча туториалов, статей, но не понял для чего они нужны. Пример:
type Numbers struct {
Num1 int
Num2 int
}
type NumberInterface interface {
Sum() int
}
func (n Numbers) Sum() int {
return n.Num1 + n.Num2
}
func main() {
numbers := Numbers{1, 5}
fmt.Println(numbers.Sum()) //6
}
ну и для чего здесь интерфейс? Ну есть он и есть, уберешь интерфейс результат будет тот же, подскажите пожалуйста для чего они нужны понятным языком?