声明及其作用域

未匹配的标注

声明将非空白标识符绑定到常量类型变量函数标签。程序中的每个标识符都必须声明。不能在同一块中声明两次相同标识符,也不能在文件和包块中同时声明任何标识符。

空白标识符可以像任何其他的标识符一样在声明中使用,但不会引入绑定(也因此空白标识符永远不会被声明)。在 package 块中,标识符 init 仅可用于init 函数声明,并且与空白类似标识符,它不会引入新的绑定。

声明 = 常量声明 | 类型声明 | 变量声明
顶层声明 = 声明 | 函数声明 | 方法声明

一个声明了的标识符的作用域是在一定的代码中相应标识符可以用来表示指定的常量、类型、变量、函数、标签或包的范围。

Go 在词法范围内使用

  1. 预定义标识符的范围是全局块。
  2. 表示在顶层(任何函数之外)声明的常量、类型、变量或函数(方法除外)的标识符的范围是包块。
  3. 导入的软件包的软件包名称的范围是包含导入声明的文件的文件块。
  4. 表示方法接收者、函数参数或结果变量的标识符的范围是函数主体。
  5. 在函数内部声明的常量或变量标识符的范围始于常量或变量声明(包括短变量声明)开始到变量所处的块的结束而结束。
  6. 在函数内部声明的类型标识符的范围始于类型声明中的标识符,并在相应块的末尾结束。

一个已经声明了的标识符可以在内部块中被重新声明。在重新声明后,自重新声明开始到相应块结束之间该标识符覆盖了外层标识符。

package 子句 不是声明; 程序包名称不会出现在任何范围内。其用途是识别处于同一的文件并为导入声明指定默认的包名称。

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/go-specificatio...

译文地址:https://learnku.com/docs/go-specificatio...

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~