- 使用 “
import _
” 进行包初始化
有时,在库中,你可能会遇到结合下划线 (_) 的导入语句,如下所示::
import (
_ "google.golang.org/genproto/googleapis/api/annotations"
)
这将执行包的初始化代码(init 函数)
,而无需为其创建名称引用。这允许你在运行代码之前初始化包、注册连接和执行其他任务。
让我们通过一个示例来更好地理解它的工作原理:
// 下划线
package underscore
func init() {
fmt.Println("init called from underscore package")
}
// main
package main
import (
_ "lab/underscore"
)
func main() {}
// 输出:init called from underscore package
- 使用 “
import .
” 进行导入
在了解了如何使用下划线进行导入后,让我们看看如何更常见地使用点 (.) 运算符。
作为开发者,点 (.) 运算符可用于在不必指定包名的情况下使用导入包的导出标识符,这对于懒惰的开发者来说是一个有用的快捷方式。
很酷,对吧?这在处理项目中的长包名时特别有用,比如 externalmodel 或 doingsomethinglonglib
。
为了演示,这里有一个简单的例子:
package main
import (
"fmt"
. "math"
)
func main() {
fmt.Println(Pi) // 3.141592653589793
fmt.Println(Sin(Pi / 2)) // 1
}