и в качестве ресивера передаем указатель, то для того, что бы соответствовать интерфейсу нам надо что бы была ссылка на структуру, а если мы создаем метод с ресивером без указателя, то не надо? Никак не могу допереть этот момент. Так как по сути обе структуры удовлетворяют требованиям интерфейса
Можно пример?
https://go.dev/play/p/RCmfOv1iPme строка 26. Почему на 26 я обязан поставить &, а на 27 нет
Потому что у вас на 17 строке ресивер не указатель
Ну так по факту оба метода соблюдают условиям интерфейса, или я чего то не догоняю
Потому что pointer receiver
Если у вас ресивер указатель, то при инициализации делайте &Tom{} . Если не указатель, то просто Tom{}
receiver - это сахарок над тем что он передается первым аргументом.
тогда, я по сути может быть чего то не понимаю например мы такой метод func (o *oneUser) getName() string { return o.name } Правильно ли я понимаю, что *oneUser указывает на инстанс структуры, что я сделал? И не более
Обсуждают сегодня