加载软件包内容后不使用它们的名称

问题描述:

有没有办法在不需要使用软件包名称的情况下加载软件包的内容?例如,在Python中,你可以这样做:加载软件包内容后不使用它们的名称

from somepackage import * 
# access function from somepackage foo 
foo() 

我想在Go中这么做。我试过:

import _ "path/to/my/package" 

但它没有工作。如果有人在网上寻找解决方案,我无法表达自己的看法。

+0

请注意,这是极其罕见的,你不会找到很多的Go代码,这是否在野外。 – elithrar

The Go Programming Language Specification

Import declarations

如果一个明确的句号(。)出现,而不是一个名称,在该包的包块声明的所有包的 出口标识符将在导入源文件的声明 文件块,并且必须是 未经限定符访问。

使用句点(。)而不是名称。例如,

package main 

import (
    "fmt" 
    . "time" 
) 

func main() { 
    fmt.Println(Now()) // time.Now() 
} 

输出:

2009-11-10 23:00:00 +0000 UTC 
+0

好吧,我纠正了,我应该更多的关注阅读规范。谢谢! – cnicutar

+0

在这里我已经准备好退出了!谢谢! – rofls

+1

@rofls:真的,准备好退出了吗?如果这对你来说是一个非常重要的特性,并且你打算经常使用它,那么我强烈建议你重新思考你如何处理编程,因为将其他包导入本地名称空间是你通常应该避免的。请记住,为方便起见,你总是可以为导入的标识符提供本地名称。 'var now = time.Now'。 – Aedolon