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

相关问题