2.3 导入声明
源文件可能包含一组导入声明,声明中包含声明的文件依赖于导入包的功能。
导入的包是程序的一部分,它们与程序的源代码一起在本地机器上编译。
导入声明以关键字 import
开头,后跟一个或多个“导入规范”,它允许访问导入规范中指定的那些包的导出标识符。
导入规范包括指定要导入的包的“导入路径”。导入路径前面可以有选择地
句点(.)或者
在导入源文件中用于访问导入包的标识符。
以下 import 语句导入了目录“lib/math”中的一个包。
如果导入的包的 package 子句为 package mathematics
,并且它包含一个名为 Cosine
的导出函数声明,那么在导入源文件中可以将函数引用为 mathematics.Cosine
。如果导入的包的 package 子句为 package math
,则导入的包名默认为 math
,并且 Cosine
函数可以引用为 math.Cosine
。
如前所述,按照惯例,包目录路径的最后一个路径段通常用作包名。也就是说,在目录 …/lib/math
中的源文件通常属于名为 math
的包,尽管这不是必需的。
可以使用与导入源文件中声明的名称不同的名称(或别名)访问导入的包。
例如,以下带有显式名称 m
的 导入语句允许在导入源文件中引用导出标识符 Cosine
为 m.Cosine
。
如果在该位置出现句点(.),那么该包的 package 块中声明的所有导出标识符都将在导入源文件的 文本块中自动声明。它们必须在没有限定符的情况下访问。
使用上述示例,在导入源文件中应简单地引用导出名称 Cosine,而无需任何包限定符。
import 语句可以包括多个圆括号中的导入规范。下面是一个示例:
应该注意,Go 语言规范并没有精确指定如何解释导入路径字符串。这是实现相关的。
例如,对于同一模块中的本地包,导入路径可以是导入包相对于导入源文件路径的相对路径。(但是请参见“模块”章节。)对于计算机外的包,它可以是远程源代码存储库的 URL 的子字符串,其中找到或以其他方式标识导入的包。这是因为标准 go build 工具链使用了这些约定。
最后更新于