Go语言工具链是Go开发的核心组件,提供完整的代码管理、编译、测试功能。
简单项目结构:
1-21/
├── go.mod
├── main.go
└── calculator/
├── math.go
└── math_test.go
go.mod
module 1-21
go 1.22
main.go
package main
import (
"fmt"
"simple-app/calculator"
)
func main() {
fmt.Println("简单计算器应用")
// 使用calculator包
result := calculator.Add(10, 5)
fmt.Printf("10 + 5 = %d\n", result)
result = calculator.Multiply(4, 3)
fmt.Printf("4 × 3 = %d\n", result)
// 测试性能
calculator.BenchmarkCalculation()
}
calculator/math.go
package calculator
import "fmt"
// Add 加法计算
func Add(a, b int) int {
return a + b
}
// Multiply 乘法计算
func Multiply(a, b int) int {
return a * b
}
// BenchmarkCalculation 性能测试演示
func BenchmarkCalculation() {
fmt.Println("开始性能测试...")
sum := 0
for i := 0; i < 1000000; i++ {
sum += Multiply(i, i+1)
}
fmt.Printf("性能测试完成,结果: %d\n", sum)
}
calculator/math_test.go
package calculator
import "testing"
func TestAdd(t *testing.T) {
tests := []struct {
name string
a, b int
want int
}{
{"正数相加", 2, 3, 5},
{"负数相加", -1, -1, -2},
{"零值相加", 0, 5, 5},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := Add(tt.a, tt.b); got != tt.want {
t.Errorf("Add(%d, %d) = %d, 期望 %d", tt.a, tt.b, got, tt.want)
}
})
}
}
func TestMultiply(t *testing.T) {
result := Multiply(3, 4)
if result != 12 {
t.Errorf("Multiply(3, 4) = %d, 期望 12", result)
}
}
// 基准测试
func BenchmarkAdd(b *testing.B) {
for i := 0; i < b.N; i++ {
Add(100, 200)
}
}
func BenchmarkMultiply(b *testing.B) {
for i := 0; i < b.N; i++ {
Multiply(100, 200)
}
}
# 1. 项目初始化
mkdir simple-app && cd simple-app
go mod init simple-app
# 2. 运行程序
go run main.go
# 3. 构建程序
go build -o app
./app
# 4. 运行测试
go test ./calculator/
go test -v ./calculator/ # 详细输出
go test -bench=. ./calculator/ # 包含基准测试
# 5. 测试覆盖率
go test -cover ./calculator/
# 6. 代码格式化
go fmt ./...
# 7. 静态检查
go vet ./...
build.sh - 简单构建脚本
#!/bin/bash
echo "构建应用程序..."
go build -o simple-app .
echo "构建完成!"
test.sh - 测试脚本
#!/bin/bash
echo "运行测试..."
go test -v -cover ./...
echo "测试完成!"
# Windows编译
GOOS=windows GOARCH=amd64 go build -o simple-app.exe
# Linux编译
GOOS=linux GOARCH=amd64 go build -o simple-app-linux
# macOS编译
GOOS=darwin GOARCH=amd64 go build -o simple-app-macos
核心工具链命令:
go mod init - 初始化项目go mod tidy - 整理依赖开发工作流程:
go mod init - 创建项目go test - 验证功能go run - 快速测试go build - 构建发布