【发布时间】:2017-08-19 23:08:20
【问题描述】:
我一直试图找到这个问题的答案,但没有成功。
当一个包由多个源文件组成时,问题是关于 Go 中的 import 语句。
假设我有一个名为 math 的包,其中包含多个文件:
|-- math
|-- add.go
|-- subtract.go
|-- divide.go
|-- multiply.go
假设math 包使用fmt 包,因此它需要适当的导入语句。但是由于我们有四个单独的文件,我们必须多次导入fmt 包(至少在我的理解中):
// add.go
import "fmt"
// subtract.go
import "fmt"
// divide.go
import "fmt"
// multiply.go
import "fmt"
现在的问题是,编译包时会发生什么?语句是否简单地合并在一起?
如果是这样,为什么我们必须多次导入包(每个文件一次),而不仅仅是一个包含所有导入语句的文件,以免重复自己?
【问题讨论】: