Go-项目规范

2026/04/15

初始化项目

go mod init github.com/0x3ea/KeyForge

带上前缀的作用:

  1. 模块唯一标识

防止命名冲突

  1. 自动下载依赖
# Go 会从 github.com 自动拉取代码
go get github.com/0x3ea/KeyForge
  1. 版本管理
import "github.com/gin-gonic/gin/v2"  // 带版本号

引用函数

"github.com/0x3ea/KeyForge/internal/crypto"
key := crypto.GenerateKey([]byte("123456"))

构建项目

go build -o Keyforge

工具

gofmt

# 显示当前文件与格式化后版本的差异对比(diff),但不修改原文件。
gofmt -d 文件名.go
命令行为
gofmt -w 文件.go直接覆盖写入格式化后的内容
gofmt -l 文件.go列出需要格式化的文件名
gofmt -d 文件.go打印 diff,不修改文件
gofmt 文件.go打印格式化后的完整内容到 stdout

go test

go test ./...  # 执行当前目录下的所有测试

Go 通过文件名约定来识别测试文件,文件名以_test.go结尾

测试文件里必须包含 import “testing”

测试函数的格式必须为 func TestXxx(t *testing.T)