Правило is, методы могут быть определены только по именованному типу и указателю на именованный тип.GO - метод redeclared error
Для ниже code,
package main
type Cat struct {
}
func (c Cat) foo() {
// do stuff_
}
func (c *Cat) foo() {
// do stuff_
}
func main() {
}
компилятор выдаст сообщение об ошибке:
main.go:10: method redeclared: Cat.foo
method(Cat) func()
method(*Cat) func()
Приведенный выше код определяет,
метод foo()
для имени типа (Cat
) и
метода foo()
для указателя с именем типа (*Cat
).
Вопрос:
для GO компилятора, почему методы, определенные для различных типов считается же?
С этой ошибкой, Как я знаю, какие методы должны быть определены для разрешенного типа? – overexchange
Возможный дубликат [GO - Почему неявные методы не указателя не удовлетворяют интерфейсу?] (Http://stackoverflow.com/questions/41922181/go-why-implicit-non-pointer-methods-not-satisfy-interface) –
@ dev.bmax, как вы думаете, что это дубликат? Если этот запрос получил ответ Эд, поделитесь им – overexchange