Açıklama Yok

zhuts 5a0610ebbf feat: 新增第八课结构体例程与逐步学习说明 3 gün önce
lessons 5a0610ebbf feat: 新增第八课结构体例程与逐步学习说明 3 gün önce
.gitignore 7332d3021e feat: initialize Go learning project with tutorial and tests 4 gün önce
INSTALL.md 197dbff561 refactor: organize numbered lessons and document Go entry point 4 gün önce
README.md 5a0610ebbf feat: 新增第八课结构体例程与逐步学习说明 3 gün önce
go.mod 7332d3021e feat: initialize Go learning project with tutorial and tests 4 gün önce

README.md

Go 语言分级学习与测试

按编号逐级学习,每个例程独占一个文件夹,代码、测试和该例程说明放在一起,不与其他例程混放。

项目结构

.
├── 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    # 本课函数测试
    └── 08_structs/         # 第 08 课:结构体
        ├── README.md       # 定义、字段、复制和结构体切片
        └── main.go         # 学生记录与简化测试数据表

根目录不放例程代码。各课共享根目录的 go.mod,不需要逐课初始化模块,也不需要 go.work。当前模块路径 example.com/go-study 是学习用标识,不必与 Git 地址相同。

学习目录

级别 例程 内容 状态
01 第一个 Go 程序 输出、变量、函数、首次测试 已建立
02 变量、常量与基础类型 声明、赋值、零值、类型转换 已建立
03 if 条件判断 条件分支、比较、逻辑运算 已建立
04 for 循环 三段式、条件循环、break、continue、range 已建立
05 数组与切片 索引、遍历、append、截取、make、copy 已建立
06 map 键值对 增删改查、存在性判断、遍历、nil 已建立
07 函数 参数、返回值、值传递、多返回值、可变参数 已建立
08 结构体 定义、字段访问、零值、复制、结构体切片 已建立

后续按编号逐步新增独立目录。不一次性铺开后续课程,也不把新例程写进旧例程的入口文件。

快速开始

在项目根目录执行:

go version
go run ./lessons/01_hello

预期输出:

你好,Go!
欢迎开始 Go 语言学习与测试。
2 + 3 = 5

也可以进入本课目录运行:

Set-Location lessons/01_hello
go run .
go test -v .

根目录没有 Go 程序入口,不要在根目录使用 go run .。进入具体例程目录后才使用该命令。

公共命令

以下命令均在项目根目录执行:

# 只运行第 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 标准库,不需要第三方运行依赖。详见 安装与运行教程,包含 SDK、VS Code 工具安装、依赖管理、编译、测试和调试步骤。

参考资料

Git 仓库

远程地址:http://vk-fly.com:10880/ZhuTianShuai/go_learn.git

请勿提交密码、访问令牌或个人环境配置。当前 HTTP 地址没有 HTTPS 传输加密;如服务端支持,建议改用 HTTPS 或 SSH。