如果方法具有指针接收器,则只能将指针值用作接收器值。因此,要在某个值上调用此方法,该值本身必须是一个指针,或者必须有可能获取其地址(用作接收方)。
例如,如果您有一个变量,则该变量是可寻址的,因此可以获取其地址并将其用作接收器。规范允许您执行此操作,这会自动发生。
包装在接口中的值是不可寻址的。创建接口值时,将复制包装在接口中的值。因此,无法使用其地址。从理论上讲,您可以允许获取副本的地址,但这将带来(甚至)比提供的好处更多的混乱,因为该地址将指向副本,并且带有指针接收器的方法只能修改副本而不是原始的。



