在Go中导入一个包而不使用是非法的,编译器会报错。这样可以避免未用包的膨胀,减少编译时间。
修改示例geometry.go
文件中的代码:
package main
import (
"geometry/rectangle" // 导入自定义包
)
func main() {
}
上面的程序将抛出错误:geometry.go:6: imported and not used: "geometry/rectangle"
。
但是,在应用程序开发阶段,导入包而不使用(或许以后会使用),是很常见的。这种情况下,可以使用空白标识符_
。
上述程序中的错误,可以通过以下代码消除,
package main
import (
"geometry/rectangle"
)
var _ = rectangle.Area // 消除错误
func main() {
}
使用代码var _ = rectangle.Area
消除错误。
这些类型的错误静默器在开发结束时应该删除(包括未使用的导入包)。因此,建议紧跟import
语句之后,编写错误静默器。
有时需要初始化一个包,即使不使用包中的函数或变量。例如,我们需要初始化rectangle
包(即调用它的init
函数),在这种情况下也可以使用_
空白标识符,如下所示。
package main
import (
_ "geometry/rectangle"
)
func main() {
}
运行上述程序将输出rectangle package initialized
。我们已经成功地初始化了包,即使它不在任何地方使用。