代码之家  ›  专栏  ›  技术社区  ›  ledonter

Go中方法的范围是什么?

  •  2
  • ledonter  · 技术社区  · 7 年前

    来自规范(“声明和范围”):

    表示在顶级(在任何函数之外)声明的常量、类型、变量或函数(但不是方法)的标识符的作用域是包块。

    我猜这意味着一个标识符的作用域表示一个方法而不是一个包块。

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

    2 回复  |  直到 7 年前
        1
  •  5
  •   Cerise Limón    7 年前

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

        2
  •  3
  •   peterSO    7 年前

    The Go Programming Language Specification

    Method declarations

    方法是一个带有接收器的函数。方法声明绑定 标识符,方法名,指向方法,并将该方法关联 使用接收器的基本类型。

    接收器通过位于 方法名称。该参数节必须声明单个非变量 参数,接收器。其类型必须为T或*T格式 (可能使用括号)其中t是类型名。表示的类型 按t称为接收器基类型;它不能是指针或 接口类型和它必须在与 方法。方法被称为绑定到基类型和方法 名称仅在类型t或*t的选择器中可见。


    方法被称为绑定到基类型,方法名为 仅在类型T或*T的选择器中可见。