in go,如果我們想要使用該文件中定義的函數,我們不需要在同一目錄中導入另一個文件嗎?例如, 。in go,如果我們想要使用該文件中定義的函數,我們不需要在同一個目錄中導入另一個文件嗎?
FolderA-
-------- FileA.go
---------FileB.go
在FileB.go,我定義方法foo()
在FileA.go,我想調用foo(),它在FileB.go定義。
是否需要像這樣在FileA.go中導入FileB?
import ("FileB")
in go,如果我們想要使用該文件中定義的函數,我們不需要在同一目錄中導入另一個文件嗎?例如, 。in go,如果我們想要使用該文件中定義的函數,我們不需要在同一個目錄中導入另一個文件嗎?
FolderA-
-------- FileA.go
---------FileB.go
在FileB.go,我定義方法foo()
在FileA.go,我想調用foo(),它在FileB.go定義。
是否需要像這樣在FileA.go中導入FileB?
import ("FileB")
不,只是調用一個函數。請注意:
檢查:https://blog.golang.org/organizing-go-code
和谷歌充滿了良好的信息爲好,當然。 http://thenewstack.io/understanding-golang-packages/
不,你不需要導入這些文件。 請將所有.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
包,因爲在包的依賴關係必須列出具體的使用它的每個文件。