从规范中可以看到(声明和范围): 在顶级(在任何函数之外)声明的常量、类型、变量或函数(但不是方法)的标识符的范围是包块。 我猜这意味着标识一个方法的范围不是包块。 那是什么呢?我没有在规范中找到任何信息。
Go编程语言规范 方法声明 方法是带有接收器的函数。方法声明将标识符(方法名)绑定到一个方法,并将该方法与接收器的基础类型相关联。 接收器通过在方法名之前指定一个额外的参数部分来指定。该参数部分必须声明一个单个非可变参数,即接收器。其类型必须为T或*T形式(可能使用括号),其中T是类型名称。由T表示的类型称为接收器基础类型;它不能是指针或接口类型,并且必须在与方法相同的包中定义。该方法被称为绑定到基础类型,方法名仅在类型T或*T的选择器中可见。 据说该方法是绑定到基础类型的,并且该方法名仅在类型T或*T的选择器中可见。