Go教程技术文章
-
使用 go-flags 的 Completer 接口为自定义命令行值返回前缀匹配候选,解释 Completion 的字段、指针接收者、choice 标签与空前缀处理。364 收藏 -
用 Go unique.Make 将可比较字符串规范化为 unique.Handle,解释句柄比较、Value 取值、并发安全和不适用场景。364 收藏 -
说明 Go base64.AppendDecode 部分结果与错误并存时,怎样区分新增区、恢复原长度、记录输入位置,并选择完整输入重试或流式接口。364 收藏 -
调用 time.Ticker.Stop 后,程序仍可能处理一次已经进入通道的时间值。关键不在于 Stop 会不会清空通道,而在于退出信号、通道消费和任务收尾的顺序。本文用可运行示例拆开这个边界。363 收藏 -
Golang · Go教程 | 2个月前 | 标准库 · 性能优化 · 字符串处理 · Go教程 · 内存分配 strings.Split Go 1.24 Go 迭代器 Go strings.SplitSeq
Go 1.24 的 strings.SplitSeq 返回迭代器,适合边读边处理分隔文本。本文对照 Split 的切片语义,验证空分隔符、连续分隔符和提前停止,并说明什么时候不该为了省一个切片改写代码。363 收藏 -
io.LimitedReader 用 N 限制读取量,但读满上限不等于底层输入结束。本文用剩余字节、EOF 与下一次读取拆开判断,给出处理固定长度帧和保留尾部数据的 Go 写法。363 收藏 -
Go 定时任务如果依赖地区本地时刻,应使用 IANA Location 保存夏令时规则,并用 ParseInLocation 解析无偏移的时间字符串。本文给出加载、解析和运行前检查的完整边界。363 收藏 -
Go archive/zip 读取中文文件名时,应先查看 ZIP 的 UTF-8 标志位与 File.NonUTF8,再决定是否做 GBK 或 GB18030 转码。本文给出默认读取、来源确认、显式解码和路径安全检查的完整边界。363 收藏 -
Go math/big 的精度控制关键在于 big.Float 的尾数位数、舍入模式和 Accuracy 状态。本文说明如何用 SetPrec、SetMode 和 Acc 设定并检查精度,并比较 big.Int、big.Rat 与 big.Float 的适用边界。363 收藏 -
Go 的 big.ParseFloat 通过 prec 控制二进制有效位数,通过 RoundingMode 决定舍入方向。本文用可复用代码说明参数选择、Accuracy 判断和展示精度之间的边界。363 收藏 -
用 Go 1.26 的 //go:fix inline 为旧 API 提供可迁移的替代入口,演示函数、常量、类型别名的写法,以及副作用、defer、测试和版本门槛等复核边界。363 收藏 -
测试里用 time.Now 生成的时间字段会让 got 和 want 每次都不一样。本文只围绕 go-cmp 解释如何用 cmpopts.IgnoreFields 忽略指定字段,同时保留其它业务字段的差异,并区分时间容差比较、嵌套字段路径和全局忽略类型的边界。363 收藏 -
Go embed 可以在编译期把静态文件放进程序,embed.FS 再通过标准 fs.FS 接口按路径读取。本文比较 string、[]byte 与 embed.FS 的适用场景,并给出模板和静态资源读取方式。363 收藏 -
Go 的 Root.Readlink 正式拼写带小写 l,专门读取根目录内符号链接保存的目标文本。本文用最小示例区分读取链接、跟随链接和路径越界错误。363 收藏 -
Go 的 os.Readlink 返回的是符号链接保存的目标字符串。本文用 filepath.IsAbs 判断相对或绝对目标,并说明相对目标为什么要以链接所在目录为基准解释。363 收藏