Go中方法的范围是什么?

时间:2019-01-22 02:22:27

标签: go methods scope

根据规范(“声明和范围”):

  

表示在顶层(任何函数之外)声明的常量,类型,变量或函数(但不是方法)的标识符的范围是包块。

我想这暗示着表示方法而不是包块的标识符范围。

那是什么?我没有在规范中找到任何信息。

2 个答案:

答案 0 :(得分:5)

方法名称没有作用域。它们必须始终由值或类型限定。

答案 1 :(得分:3)

  

The Go Programming Language Specification

     

Method declarations

     

方法是具有接收器的函数。方法声明绑定了   标识符,方法名称,方法,并将该方法关联   带有接收者的基本类型。

     

接收器是通过在   方法名称。该参数部分必须声明一个非变量   参数,接收者。其类型必须为T或* T   (可能使用括号),其中T是类型名称。表示的类型   用T表示的是接收方基本类型;它不能是指针或   接口类型,它必须与   方法。据说该方法绑定到基本类型和方法   名称仅在类型T或* T的选择器中可见。


  

据说该方法绑定到基本类型,并且方法名称为   仅在类型T或* T的选择器中可见。