# Go 语言分级学习与测试 按编号逐级学习,**每个例程独占一个文件夹**,代码、测试和该例程说明放在一起,不与其他例程混放。 ## 项目结构 ```text . ├── README.md # 学习目录与公共命令 ├── INSTALL.md # 环境、依赖、编译运行教程 ├── go.mod # 所有例程共用的模块配置 ├── .gitignore └── lessons/ ├── 01_hello/ # 第 01 课:第一个 Go 程序 │ ├── README.md # 本课目标、运行方法与练习 │ ├── main.go # 本课独立入口 │ └── main_test.go # 本课测试 ├── 02_variables/ # 第 02 课:变量、常量与基础类型 │ ├── README.md # 知识点、预期输出与手敲练习 │ └── main.go # 带逐节注释的参考代码 ├── 03_conditions/ # 第 03 课:if 条件判断 │ ├── README.md # 语法、编译运行与边界练习 │ └── main.go # 分支、比较和逻辑运算 ├── 04_loops/ # 第 04 课:for 循环 │ ├── README.md # 循环语法、编译运行与练习 │ └── main.go # 累加、跳过、退出和字符串遍历 ├── 05_arrays_slices/ # 第 05 课:数组与切片 │ ├── README.md # 固定长度、追加、共享和复制 │ └── main.go # 带逐节注释的参考代码 ├── 06_maps/ # 第 06 课:map 键值对 │ ├── README.md # 增删改查、遍历、nil 与共享 │ └── main.go # 按姓名查询成绩的参考代码 └── 07_functions/ # 第 07 课:函数 ├── README.md # 参数、返回值、值传递和练习 ├── main.go # 普通函数、多返回值、可变参数 └── main_test.go # 本课函数测试 ``` 根目录不放例程代码。各课共享根目录的 `go.mod`,不需要逐课初始化模块,也不需要 `go.work`。当前模块路径 `example.com/go-study` 是学习用标识,不必与 Git 地址相同。 ## 学习目录 | 级别 | 例程 | 内容 | 状态 | | --- | --- | --- | --- | | 01 | [第一个 Go 程序](./lessons/01_hello/README.md) | 输出、变量、函数、首次测试 | 已建立 | | 02 | [变量、常量与基础类型](./lessons/02_variables/README.md) | 声明、赋值、零值、类型转换 | 已建立 | | 03 | [if 条件判断](./lessons/03_conditions/README.md) | 条件分支、比较、逻辑运算 | 已建立 | | 04 | [for 循环](./lessons/04_loops/README.md) | 三段式、条件循环、break、continue、range | 已建立 | | 05 | [数组与切片](./lessons/05_arrays_slices/README.md) | 索引、遍历、append、截取、make、copy | 已建立 | | 06 | [map 键值对](./lessons/06_maps/README.md) | 增删改查、存在性判断、遍历、nil | 已建立 | | 07 | [函数](./lessons/07_functions/README.md) | 参数、返回值、值传递、多返回值、可变参数 | 已建立 | 后续按编号逐步新增独立目录。不一次性铺开后续课程,也不把新例程写进旧例程的入口文件。 ## 快速开始 在项目根目录执行: ```powershell go version go run ./lessons/01_hello ``` 预期输出: ```text 你好,Go! 欢迎开始 Go 语言学习与测试。 2 + 3 = 5 ``` 也可以进入本课目录运行: ```powershell Set-Location lessons/01_hello go run . go test -v . ``` > 根目录没有 Go 程序入口,不要在根目录使用 `go run .`。进入具体例程目录后才使用该命令。 ## 公共命令 以下命令均在**项目根目录**执行: ```powershell # 只运行第 01 课 go run ./lessons/01_hello # 只测试第 01 课 go test -v ./lessons/01_hello # 格式化、测试、检查所有课程 go fmt ./... go test -v ./... go vet ./... # 编译第 01 课到对应的构建目录 New-Item -ItemType Directory -Force bin/01_hello | Out-Null go build -o ./bin/01_hello/hello.exe ./lessons/01_hello .\bin\01_hello\hello.exe ``` 每个例程独立编译运行,不要使用 `go run ./...` 尝试一次启动所有课程。构建产物统一放入已忽略的 `bin/课程编号/` 目录。 ## 安装与依赖 当前仅使用 Go 标准库,**不需要第三方运行依赖**。详见 [安装与运行教程](./INSTALL.md),包含 SDK、VS Code 工具安装、依赖管理、编译、测试和调试步骤。 ## 参考资料 - [Go 官方文档](https://go.dev/doc/) - [A Tour of Go](https://go.dev/tour/) - [标准库参考](https://pkg.go.dev/std) ## Git 仓库 远程地址: 请勿提交密码、访问令牌或个人环境配置。当前 HTTP 地址没有 HTTPS 传输加密;如服务端支持,建议改用 HTTPS 或 SSH。