我正在阅读go规范并遇到following section:
标识符的唯一性
给出一组标识符,如果标识符是唯一的,则称为唯一标识符 在集合中彼此不同。两个标识符不同 如果它们的拼写不同,或者它们出现的方式不同 packages而非exported。否则,它们是相同的。
我尚不清楚为什么引入此定义很重要,但是在我看来,这意味着 从不同软件包中完全相同地命名的导出标识符是相同的 。我会误会吗?
答案 0 :(得分:0)
我误会了吗?
是的
标识符由程序包名称限定。
The Go Programming Language Specificatio n
合格标识符是具有包名称合格的标识符 字首。包名称和标识符都不能为空。
QualifiedIdent = PackageName "." identifier .
合格标识符访问其他包中的标识符, 必须将其导入。标识符必须导出并声明 在该包装的包装块中。
math.Sin // denotes the Sin function in package math
PackageName用于合格 标识符以访问包中导出的包的标识符 导入源文件。它在文件块中声明。如果 PackageName被省略,它默认为在 导入包的package子句。如果是明确的句点(。) 出现而不是名称,所有软件包的导出标识符 在该包的package块中声明的声明将在 导入源文件的文件块,并且必须在没有 限定词。