Интерфейсы нужны для полиморфизма.
Конкретно в твоём случае да - разницы нет.
Но чисто в теории ты бы мог сделать вот так:
type Numbers struct {
Num1 int
Num2 int
}
type ThreeNumbers struct {
Num1 int
Num2 int
Num3 int
}
func (n Numbers) Sum() int {
return n.Num1 + n.Num2
}
func (n ThreeNumbers) Sum() int {
return n.Num1 + n.Num2 + n.Num3
}
func SumAll(numbers NumberInterface) int {
return numbers.Sum()
}
Функция SumAll будет работать с любыми типами, которые реализуют интерфейс NumberInterface, причём даже если они сами об этом не в курсе, благодаря утиной типизации.