Go教程技术文章
-
区分 Go ByteOrder 与 AppendByteOrder,展示定长整数追加、字节序选择和返回切片的正确用法,说明容量及共享数组的边界。373 收藏 -
netip.ParsePrefix 用来把 IPv4 或 IPv6 的 CIDR 文本解析为 Prefix。本文说明如何处理返回错误、为什么 ParsePrefix 不会自动清零主机位,以及何时使用 Masked、MustParsePrefix 和 PrefixFrom。334 收藏 -
讲清 Go 模块元数据字段、Replace 替换关系与多对象 JSON 流读取,提供保留失败状态的脚本及最小报告方案。242 收藏 -
go mod graph 用模块 requirement 边展示依赖来源,go list -m all 用来观察最终构建列表。本文按排查顺序说明如何定位上游、理解版本差异,并处理 replace、exclude 与 Go 版本语义。148 收藏 -
说明 go mod edit -fmt 如何只整理 go.mod 的文本格式,区分 -print、-json、go get 与 go mod tidy 的职责,避免把排版命令当成依赖维护命令。367 收藏 -
解释 Go go:generate 的固定执行目录规则,区分包内相对路径与仓库根目录参数,并给出 -root 方案让多包代码生成不依赖调用者当前目录。387 收藏 -
Go go:embed 可将目录资源装入 embed.FS。本文说明目录模式与隐藏文件规则、原始路径与 fs.Sub 子树读取,以及只读资源和敏感配置的边界。258 收藏 -
Go 原生 fuzzing 会把种子输入和失败输入保存为语料库。本文说明如何使用 F.Add 与 testdata/fuzz 管理语料,并用 go test 和 -run 复现指定输入。194 收藏 -
Go 1.24 引入的 testing.B.Loop 能自动控制基准计时边界,并降低 b.N 循环中 setup、cleanup 和结果被优化掉的风险。本文用一个字符串统计小项目说明写法、迁移要点和不能混用的边界。302 收藏 -
Go 1.24 的 testing.T.Context 会在测试完成、Cleanup 执行前取消。本文从后台 goroutine 未退出的故障现象出发,说明如何传递 t.Context、响应 Done,并用 Cleanup 等待任务收尾。160 收藏 -
Go testing.T.Setenv 会在测试清理阶段恢复环境变量。本文说明父子测试的设置层级、串行子测试的隔离写法,以及 t.Parallel 与进程级环境变量的冲突边界。184 收藏 -
testing.T.Name 会返回当前测试或子测试的完整名称,嵌套 Run 使用斜杠连接层级,重复兄弟名称会自动追加序号。本文用表格驱动测试说明如何读取、记录和正确使用这个名称。397 收藏 -
Go os.OpenFile 配合 O_CREATE 和 O_EXCL,可以把文件不存在检查与创建合并成一次独占操作。本文说明先检查再创建的竞态、已存在错误的判断、写入收尾和不同文件创建策略的选择。294 收藏 -
Go errors.As 可以沿着 %w 形成的错误链查找目标类型,并把匹配到的错误写入目标变量。本文说明多层包装、指针目标、首次匹配和自定义 As 方法的正确用法。319 收藏 -
Go crypto/ecdh.PublicKey.Bytes 会返回公钥编码的副本,适合放入协议字段或持久化格式;接收端应使用同一曲线的 NewPublicKey 重新解析,并用 Equal 与 Curve 区分对象相等和曲线匹配。本文给出最小写法、错误处理和常见边界。237 收藏