在 Go 教程和我看过的大部分 Go 代码中,包是这样导入的:
import ( "fmt" "os" "launchpad.net/lpad" ... )
但是在gocheck 包是用.(句点)导入的:
.
import ( "http" . "launchpad.net/gocheck" "launchpad.net/lpad" "os" )
.(句号)的意义是什么?
它允许在没有限定符的情况下在本地文件块中引用导入包中的标识符。
如果出现显式句点 (.) 而不是名称,则所有包的导出标识符将在当前文件的文件块中声明,并且无需限定符即可访问。 假设我们编译了一个包含 package 子句 package math 的包,它导出函数 Sin,并将编译后的包安装在“lib/math”标识的文件中。此表说明了在各种类型的导入声明之后如何在导入包的文件中访问 Sin。
如果出现显式句点 (.) 而不是名称,则所有包的导出标识符将在当前文件的文件块中声明,并且无需限定符即可访问。
假设我们编译了一个包含 package 子句 package math 的包,它导出函数 Sin,并将编译后的包安装在“lib/math”标识的文件中。此表说明了在各种类型的导入声明之后如何在导入包的文件中访问 Sin。
Import declaration Local name of Sin import "lib/math" math.Sin import M "lib/math" M.Sin import . "lib/math" Sin