2016-12-02 25 views
1

in go,如果我們想要使用該文件中定義的函數,我們不需要在同一目錄中導入另一個文件嗎?例如, 。in go,如果我們想要使用該文件中定義的函數,我們不需要在同一個目錄中導入另一個文件嗎?

FolderA- 
-------- FileA.go 
---------FileB.go 

在FileB.go,我定義方法foo()

在FileA.go,我想調用foo(),它在FileB.go定義。

是否需要像這樣在FileA.go中導入FileB?

import ("FileB") 

回答

2

不,你不需要導入這些文件。 請將所有.go文件作爲一個目錄作爲一個包和目錄作爲另一個包處理。 您可以從https://talks.golang.org/2014/organizeio.slide#1

瞭解更多信息因此,只需要導入如果要使用另一個函數來查找其他目錄中的文件。

例如,我們有一個fruit目錄

apple.go

 

    package fruit 
    import(fmt) 

    func ExportedMethod() { 
     fmt.Print("apple") 
    } 

    func privateMethod() {} 

banana.go

 
    package fruit 
    import(fmt) 

    func banana() { 
     fmt.Print("banana") 
     ExportedMethod() 
     pivateMethod() 
    } 

這兩個文件中去,你當作一個封裝內的2個文件可以從另一個文件調用方法,即使方法未導出(在第一個字符處使用小寫字母) 您可以瞭解更多有關導出和未導出這裏https://www.goinggo.net/2014/03/exportedunexported-identifiers-in-go.html

banana.go需要進口fmt包甚至認爲apple.go已經導入fmt包,因爲在包的依賴關係必須列出具體的使用它的每個文件。

相關問題