Go 规范将标识符定义为导出的基本原理是什么如果两者:标识符名称的第一个字符是 Unicode 大写字母(Unicode 类“Lu”);和标识符在包块中声明,或者它是字段名或方法名。"第 1 项对我来说很清楚。但是第 2 项的预期含义是什么。 ?据我了解,每个标识符都必须在包块中声明,因为 Go 不提供其他地方来声明标识符。我也不明白为什么这句话似乎区分标识符和字段名和方法名。字段名称和方法名称不是标识符的示例吗?换个方式问:我是否错误地认为:除了在包块中声明外,没有其他方法可以存在标识符(请注意,包块包含所有包代码)字段名和方法名是标识符标识符只能在包块中声明没有在包块之外声明标识符
2 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
1. 除了在包块中声明之外,没有其他方法可以使标识符存在
确实如此。您缺少的一件事是标识符的范围:
在函数内声明的常量或变量标识符的范围从 ConstSpec 或 VarSpec(短变量声明的 ShortVarDecl)的末尾开始,到最里面的包含块的末尾结束
这意味着在功能块内声明的标识符在此功能之外将不可用。
2.字段名和方法名是标识符
真的。正如您在规范中看到的,MethodName
只是 的别名identifier
,与字段名称相同。
3. 标识符只能在包块中声明
我相信这是通过回答第一个问题来解决的。
4. 不能在包块外声明标识符
在Universe 块中声明了预先声明的标识符。但是您不能在代码中的包块之外声明标识符。
- 2 回答
- 0 关注
- 132 浏览
添加回答
举报
0/150
提交
取消