2016-02-20 56 views
2

有沒有辦法在不需要使用軟件包名稱的情況下加載軟件包的內容?例如,在Python中,你可以這樣做:加載軟件包內容後不使用它們的名稱

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

我想在Go中這麼做。我試過:

import _ "path/to/my/package" 

但它沒有工作。如果有人在網上尋找解決方案,我無法表達自己的看法。

+0

請注意,這是極其罕見的,你不會找到很多的Go代碼,這是否在野外。 – elithrar

回答

5

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

相關問題