Go教程技术文章
-
Go 配置驱动正则时,不要用 MustCompile 把外部输入变成 panic。本文用 regexp.Compile、配置键包装和规则对象,说明如何把编译失败交给配置层,并处理启动、热加载与旧规则回退边界。222 收藏 -
围绕 Go filepath.Match 的方括号字符类,说明转义、字符区间、ErrBadPattern 以及 Unix 和 Windows 的差异,给出可直接改成测试的写法。222 收藏 -
Go sort.Search 并不要求把数据重新排成升序。本文从第一个 true 的返回语义出发,说明降序切片为什么使用 data[i] <= target,并处理精确命中、重复值、未找到和 len(data) 边界。222 收藏 -
讲清 go/types.Config.Check 为什么需要 Importer,以及怎样接入 importer.Default 解析导入包、收集类型信息并处理检查错误。222 收藏 -
通过 Go net.Resolver 隔离 DNS 策略,区分 PreferGo、Dial 与 StrictErrors,并将解析器绑定到 HTTP 客户端。结合代码解释超时、代理、连接复用及配置切换的适用边界。222 收藏 -
本文从可选配置键值拆分的排查现场出发,说明 strings.Cut 的 found 返回值、空输入处理、缺少分隔符和空字段边界,并给出可复用的 Go 解析示例。222 收藏 -
Go 1.21 引入的 slices.Clip 可以把切片容量收紧到长度,适合在保留小结果、释放大底层数组引用时使用。本文用可运行示例说明它的边界。221 收藏 -
用 Go os.File.Chown 在 Linux 上修改文件的数字 UID 和 GID,区分权限、符号链接与跨平台边界,并用 Stat 和错误分类完成可回滚验收。221 收藏 -
Go container/heap 的堆顶不对,通常不是 Push 自己排序失败,而是 Less 方向、Init 时机、接口内部 Pop 或修改元素后未调用 Fix。本文按不变量和 API 职责给出排查与修复方法。221 收藏 -
Go 导出 CSV 时,Writer.UseCRLF 决定记录行尾是否使用回车加换行。本文从表格软件兼容、字段引用、Flush 与字节检查几个环节说明如何稳定落地。221 收藏 -
把临时文件处理从 filepath.Join、os.CreateTemp 和 os.Rename 迁移到 os.Root,关键是先固定根目录,再让创建、写入、改名和清理都使用相对路径。本文用一个生成 JSON 报告的小项目拆解迁移步骤,并说明 Go 版本、资源关闭和越界路径的边界。221 收藏 -
用 Go x/text/message SetString 登记不同语言的消息,再交给 Printer 按语言读取。本文从消息键、默认 catalog、语言标签和原文回退四个边界讲清写法,并整理全局登记与请求读取的工程取舍。221 收藏 -
Go fuzz 测试里的种子参数不是从 *testing.F 再取一次,而是由 f.Fuzz 回调的参数直接接收。本文用 string、[]byte 和 int64 示例说明 f.Add、回调签名、默认 go test、持续 fuzz、失败输入复现与 testdata/fuzz 的选择边界。221 收藏 -
用 go:generate 固定生成入口,在 go build 前检查生成结果与源定义是否同步,覆盖命令边界、差异检查、工具依赖和提交策略。220 收藏 -
演示如何用 Writer.RegisterCompressor 为指定 ZIP 方法注册压缩器,并说明 Method 选择、Close 刷新、并发安全、读取兼容性和性能衡量方法。220 收藏