从不同软件包导出的标识符的唯一性

时间:2019-01-19 10:21:18

标签: go

我正在阅读go规范并遇到following section

  

标识符的唯一性

     

给出一组标识符,如果标识符是唯一的,则称为唯一标识符   在集合中彼此不同。两个标识符不同   如果它们的拼写不同,或者它们出现的方式不同   packages而非exported。否则,它们是相同的。

我尚不清楚为什么引入此定义很重要,但是在我看来,这意味着 从不同软件包中完全相同地命名的导出标识符是相同的 。我会误会吗?

1 个答案:

答案 0 :(得分:0)

  

我误会了吗?

是的

标识符由程序包名称限定。


  

The Go Programming Language Specificatio n

     

Qualified identifiers

     

合格标识符是具有包名称合格的标识符   字首。包名称和标识符都不能为空。

QualifiedIdent = PackageName "." identifier .
     

合格标识符访问其他包中的标识符,   必须将其导入。标识符必须导出并声明   在该包装的包装块中。

math.Sin  // denotes the Sin function in package math
     

Import declarations

     

PackageName用于合格   标识符以访问包中导出的包的标识符   导入源文件。它在文件块中声明。如果   PackageName被省略,它默认为在   导入包的package子句。如果是明确的句点(。)   出现而不是名称,所有软件包的导出标识符   在该包的package块中声明的声明将在   导入源文件的文件块,并且必须在没有   限定词。