加载软件包内容后不使用它们的名称
问题描述:
有没有办法在不需要使用软件包名称的情况下加载软件包的内容?例如,在Python中,你可以这样做:加载软件包内容后不使用它们的名称
from somepackage import *
# access function from somepackage foo
foo()
我想在Go中这么做。我试过:
import _ "path/to/my/package"
但它没有工作。如果有人在网上寻找解决方案,我无法表达自己的看法。
答
The Go Programming Language Specification
如果一个明确的句号(。)出现,而不是一个名称,在该包的包块声明的所有包的 出口标识符将在导入源文件的声明 文件块,并且必须是 未经限定符访问。
使用句点(。)而不是名称。例如,
package main
import (
"fmt"
. "time"
)
func main() {
fmt.Println(Now()) // time.Now()
}
输出:
2009-11-10 23:00:00 +0000 UTC
请注意,这是极其罕见的,你不会找到很多的Go代码,这是否在野外。 – elithrar