go - 从不同包中导出的标识符的唯一性
问题描述
我正在阅读 go spec 并针对以下部分运行:
标识符的唯一性
给定一组标识符,如果一个标识符与集合中的其他标识符不同,则称为唯一标识符。如果两个标识符拼写不同,或者它们出现在不同的 包中并且未导出,则它们是不同的。否则,它们是相同的。
我还不知道为什么引入这个定义很重要,但在我看来,这意味着来自不同包的同名导出标识符是相同的。我误解了什么吗?
解决方案
我误解了什么吗?
是的。
标识符由包名限定。
Go 编程语言规范
限定标识符是使用包名称前缀限定的标识符。包名和标识符都不能为空。
QualifiedIdent = PackageName "." identifier .
限定标识符访问不同包中的标识符,必须导入该标识符。标识符必须在该包的包块中导出和声明。
math.Sin // denotes the Sin function in package math
PackageName 用于限定标识符中以访问导入源文件中包的导出标识符。它在文件块中声明。如果省略 PackageName,则默认为导入包的包子句中指定的标识符。如果出现显式句点 (.) 而不是名称,则在该包的包块中声明的所有包的导出标识符都将在导入源文件的文件块中声明,并且必须在没有限定符的情况下访问。
推荐阅读
- python - Python 中的电子邮件正则表达式
- javascript - 数据绑定在 Angular 中不起作用,为什么?
- prestashop - Prestashop 的保存按钮不起作用(在所有选项卡中)
- c++ - 具有自定义分配器的类
- ios - iOS 13 使用 SwipeKeyboard 和 textfield 崩溃:shouldChangeCharactersIn:
- reactjs - 在 React 中,当下拉列表值发生变化时,如何获取下拉列表的 ID?
- amazon-web-services - 将请求转发到 AWS 上的多个目标服务器
- sql - VBA SQL 查询中的问题引用列
- r - 在每个逗号后查找第二个空格
- php - 如何在 Wordpress 中将子类别添加到多个父类别