gpt4 book ai didi

go - 如何在多个源文件中解析导入语句?

转载 作者:数据小太阳 更新时间:2023-10-29 03:32:59 25 4
gpt4 key购买 nike

我一直试图找到这个问题的答案,但没有成功。

当一个包由多个源文件组成时,问题是关于 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"

现在的问题是,编译包时会发生什么?这些语句只是简单地合并在一起吗?

如果是这样,为什么我们必须多次导入包(每个文件一次),而不是只有一个包含所有导入语句的文件,以免重复我们自己?

最佳答案

specification says :

The scope of the package name of an imported package is the file block of the file containing the import declaration.

因为导入没有包范围,导入不会合并在一起,并且在使用导入的每个文件中都是必需的。

导入的作用域与编译器和链接器加载导入包的方式无关。这些工具足够智能,可以一次加载任何给定的包。

关于go - 如何在多个源文件中解析导入语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45777038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com