Go 语言包结构
包组织是 Go 代码结构约定的一个基本方面。为了理解它的复杂性,我们来分析一个具体的例子,探讨以下问题:
Q1:每个包文件夹都需要一个 package.go 文件吗?
相反人们普遍认为,package.go 文件并不是每个包文件夹都必需的。当多个 Go 文件驻留在一个目录中时,它们会自动形成一个包。
Q2:在包文件夹中导入子包
合并子包(例如,rational. go、real.go)在包(例如数字)内,不要诉诸相对导入。相反,请指定完整的包路径(例如“github.com/username/projectname/number”)。
Q3:numbers/real.go 中类型定义的语法
在numbers/real.go中定义类型的语法是:
package numbers type Real struct { Number float64 }
这声明了一个Real
Q4:从主包访问类型
将子包中定义的类型集成到主包中非常简单。例如,主包可以使用以下方式访问 real.go 中定义的 Real 类型:
package main import ( "fmt" "github.com/username/projectname/number" ) func main() { fmt.Println(number.Real{2.0}) }
通过遵守这些约定,开发人员可以确保 Go 项目中的代码组织和可访问性。
以上是Go 包如何工作:结构、导入和类型定义指南?的详细内容。更多信息请关注PHP中文网其他相关文章!