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
包,因为在包的依赖关系必须列出具体的使用它的每个文件。