Go func
s, которые принимают объект receive (заключенный в круглые скобки), не следует путать с методами класса, которые распространены в языках ООП.Независимо от того, определяете ли вы свой экземпляр как указатель или нет, когда приёмник является указателем, Go передаст ваш экземпляр как указатель на func
.
PS Вы даже можете вызвать этоfunc
с приемником nil
как:
var p *Persion // p == nil
p.Introduce() // Compiler: OK!