为了加快阅读gopl(The Go Programming Language)书效率,决定输出笔记+leet实战以督促自己,加快速度、提升效果
1 程序结构
一个可执行程序如下,入口是main包下的main.go 文件中的main函数,包之间有依赖关系,编译器解析依赖时会递归地加载其依赖地包,所以在main函数之前,加载main包,递归加载main包所依赖的包如fmt,fmt又依赖别的C,会递归地加载C,是个DFS的过程,这样就加载了所有需要的包。
每个go文件包含以下几个元素
结构组成 | 语义 | 包含组件 | 样例 |
---|---|---|---|
package | 声明所在package | - |
package main |
import | 引入依赖的包 | - | import fmt import ( "fmt" "math" "os" ) |
var | 声明包级变量 | - | var count int var ( width, height = 600, 320 cells = 100 ) |
const | 声明包级常量 | - | |
type | 类型声明 类型重命名 |
- | type name int64 |
声明struct等自定义类型 | type Circle struct { Point Radius int } |
||
func | 声明包级函数或方法
|
函数签名
|
方法 |
函数体
|