package main
import "fmt"
type actions interface {
plus
minus
}
type plus interface {
plus(int, int)
}
type minus interface {
minus(int, int)
}
type calc struct {
a, b int
}
func (p *calc) plus(int, int) int {
return p.a + p.b
}
func (c *calc) minus(int, int) int {
return c.a - c.b
}
func main() {
var calc actions = &calc{}
fmt.Println(calc.plus(2, 2))
fmt.Println(calc.minus(3, 2))
}
Сигнатуры методов отличаются. В интерфейсе метод ничего не возвращает, в реализации возвращает int
Вкурил, попробую исправить. Спасибо
Ещё поля структуры не устанавливаются и будет 0, 0 Надо либо их установить, но тогда параметры функции не нужны, либо в функциях использовать не поля структуры, а параметры функций.
https://go.dev/play/p/bljgIki7Yyc
Обсуждают сегодня