包
每个go程序都是由包组成,程序从main包开始。 在同一个目录下的源码文件都需要被声明为属于同一个代码包。
- import 用来导入包
import (
"fmt"
"math/rand"
)
import "fmt"
import "math"
- 导出名
如果一个名字以大写字母开头,那么它就是已导出的
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Pi)
}
源码文件分为三种:命令源码文件,库源码文件,测试源码文件。
image.png
命令源码文件
命令源码文件是程序的运行入口,是每个可独立运行的程序必须拥有的。我们可以通过构建或安装,生成与其对应的可执行文件,后者一般会与该命令源码文件的直接父目录同名。
- 应用程序入口
- 必须是main包 main函数
- 不一定叫main.go 文件
- 退出返回值
- main函数不支持任何返回值
- 需要通过os.Exit()来返回状态
- 命令行参数
- main函数不支持接收命令行参数
- 需要通过os.Args 变量来传递
- 更复杂的参数解析使用flag包
库源码文件
库源码文件是不能被直接运行的源码文件,它仅用于存放程序实体,这些程序实体可以被其他代码使用(只要遵从 Go 语言规范的话)。
- 源码文件所在的目录相对于 src 目录的相对路径就是它的代码包导入路径
- 名称的首字母为大写的程序实体才可以被当前包外的代码引用,否则它就只能被当前包内的其他代码引用
- 在 Go 1.5 及后续版本中,可以创建internal代码包(第三种访问权限:模块级私有)
- 不允许导入后不使用,如果需要的话
import(_"fmt")
测试文件
- 源码文件以
xxx_test.go
结尾 - 测试方法名以Test开头
TestXxx(t *testing.T)
网友评论