假设我们现在要写一个简单的加减法的项目,通过这个简单的例子来了解下一个Go项目的项目结构该是怎样的。如下:
1、项目结构
112、main包
main.go
// main
package main
import (
"fmt"
"simpleMath"
)
func main() {
r, err := simpleMath.Add(-1, 2)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(r)
}
fmt.Println(simpleMath.Sub(1, 2))
}
3、simpleMath包
- add.go
// add
package simpleMath // 包名最好和文件夹名一样,这样好理解
import (
"errors"
)
func Add(v1, v2 int) (r int, err error) { // 此处函数名的大小写表明了该函数的可见性,大写代表对外可见,小写代表包内私有
if v1 < 0 || v2 < 0 { // 我们假设这个加法仅支持非负加法
r = 0
err := errors.New("对不起,仅支持非负加法")
return r, err
}
return v1 + v2, nil
}
- add_test.go
// add_test
package simpleMath
import (
"fmt"
"testing"
)
/*
1、单元测试文件命名必须是 源文件_test.go
2、单元测试文件必须导入testing包
3、测试函数名必须以 Test 开头,并且有固定的格式:
func TestXXX(t *testing.T) {
}
4、cmd+t,来单元测试
*/
func TestAdd(t *testing.T) {
r, err := Add(-1, 2)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(r)
}
}
- sub.go
// sub
package simpleMath
func Sub(v1, v2 int) (r int) {
return v1 - v2
}
- sub_test.go
// sub_test
package simpleMath
import (
"fmt"
"testing"
)
func TestSub(t *testing.T) {
fmt.Println(Sub(1, 2))
}
4、main输出
对不起,仅支持非负加法
-1
成功: 进程退出代码 0.
网友评论