Go 项目目录格式的一些问题
1.一个项目只有一个 mian.go 作为入口。所以如何解决一个项目里存在多个 xxx.go 的问题呢?如下为一种方式:
demo
|___main.go
|___exam
|___01.go
|___02.go
//mian.go 作为整个项目入口,exam 为 package (包),exam 下面又包含多个函数,每个函数可在 main.go 中调用。
01.go
package exam
import "fmt"
//Add is used to calculate the sum of two numbers
func Add(a,b int) int {
return a+b
}
//Go 要求公有函数以大写字母开头,并且需要在函数上方书写用于说明函数用处的注释,注释必须以函数名开头。
main.go
package main
import "demo/exam"
func main() {
sum := exam.Add(3,4)
fmt.println(sum)
}
2.尽量一开始养成编写测试函数的习惯。Go 语言拥有一套单元测试和性能测试系统,仅需要添加很少的代码就可以快速测试一段需求代码。
go test 命令,会自动读取源码目录下面名为 *_test.go 的文件,生成并运行测试用的可执行文件。
单元测试源码文件可以由多个测试用例组成,每个测试用例函数需要以 Test 为前缀,例如:
package exam
import "testing"
func TestAdd(t *testing.T) {
if res := addadd(3, 4); res != 7 {
t.Error("计算错误")
}
}
//测试用例文件不会参与正常源码编译,不会被包含到可执行文件中。
//测试用例文件使用 go test 指令来执行,没有也不需要 main() 作为函数入口。所有在以 _test 结尾的源码内以 Test 开头的函数会自动被执行。
//测试用例可以不传入 *testing.T 参数。