Go 程序结构
Go 程序从 package、import、声明到 main 函数的基本组织方式,以及文件级代码如何构成可执行程序。
#type / concept
#status / growing
#tech / dev
#resource / go
[!info] related notes
- 所属 MOC: Go 语言基础 MOC
- 前置概念: Go
- 并列概念: Go 包、导入与可见性, Go 函数
- 关系笔记: Go核心概念和学习顺序
Go 程序结构
一句话定义
Go 程序结构指的是一段 Go 代码如何通过 package、import、顶层声明和入口函数组织成可以编译、运行和复用的程序。
核心机制 / 工作原理
一个最小 Go 程序通常包含这些部分:
package声明import导入依赖- 顶层声明
constvartypefunc
- 如果是可执行程序,入口通常是
package main下的main()
Go 的组织方式有几个明显特点:
- 以包为单位组织代码,而不是以类为中心
- 顶层可以直接声明类型和函数
- 没有“必须写在类里”的要求
- 同一个目录下的多个文件通常属于同一个包,共同参与编译
最小例子 / 最小场景
package main
import "fmt"
func main() {
fmt.Println("hello, go")
}
这个程序表达了 Go 的基本骨架:
package main表示这是可执行入口包import "fmt"导入标准库格式化输出能力main()是程序入口
结构上最值得先理解的点
package main和其他业务包的区别- 包不是命名空间装饰,而是代码组织和可见性边界
- 一个目录通常对应一个包
- 同包内标识符共享包级作用域
边界与易混淆点
- Go 不是“一个文件一个类”的组织方式
main不是关键字,而是约定俗成的入口函数名- 同目录多文件会一起编译,不是按文件独立运行
- 包名和目录名通常一致,但并不是靠“文件名”完成导入