Go教程技术文章
-
Go regexp.Regexp.LiteralPrefix 返回所有匹配共享的字面前缀和完整标记。本文用固定文本、固定前缀与无共同前缀的表达式说明如何先筛选候选,再用 MatchString 完成最终判断。423 收藏 -
Go io/fs 的 FileInfo.ModTime 不是直接读取宿主机文件,而是读取文件系统实现提供的元数据。本文用 fs.Stat 和 fstest.MapFS 说明如何读取、判断零值、统一展示时区,并解释虚拟文件系统为什么可能没有可靠的真实修改时间。423 收藏 -
Go atomic.Uint64.CompareAndSwap 把旧值比较和新值写入绑定为一次原子条件更新。本文对比 Load 加 Store 的竞态,给出一次尝试与带重试的写法,并说明 false、零值、多字段一致性和高竞争边界。423 收藏 -
sync.Cond 可以在首次使用前完成初始化,但首次 Wait、Signal 或 Broadcast 后不应再复制。本文结合 Locker、等待状态和常见值传递场景,说明为什么要用指针持有 Cond。422 收藏 -
用os.OpenRoot和Root.OpenFile在指定目录树内创建新文件,区分Create截断与O_EXCL防覆盖,并说明写入关闭错误、父目录和平台边界。422 收藏 -
用 Go Doublestar 的 GlobWalk 按 ** 模式遍历 fs.FS,在回调里处理文件、跳过目录并传播错误;同时比较 GlobWalk、Glob 和 FilepathGlob 的适用边界。422 收藏 -
Go 1.21 之后,go 命令可以按项目要求自动切换工具链。本文用 GOTOOLCHAIN=local 固定当前捆绑版本,说明环境变量优先级、go.mod 约束、local 与 auto 的差异,以及更高版本要求下如何处理。422 收藏 -
bytes.CutPrefix 同时返回裁剪后的字节视图和 found 标志。本文用消息头示例区分空输入、空前缀、未匹配前缀与空载荷,并说明异常分支和切片生命周期。422 收藏 -
go fix 会直接改写 Go 源码。本文从模块边界、包模式、构建配置、差异预览和 Git 检查点入手,整理一套可回滚的执行准备清单。421 收藏 -
Go 读取 CSV 时,FieldPos 可以报告最近一条记录中字段的起始行和字节列;配合 ParseError 与字段边界检查,就能把坏行日志定位到可处理的位置。421 收藏 -
Go 实验性 simd 运算应按 Len 动态分块,并单独处理不足一向量的尾部。本文以 uint32 切片加法说明实验构建、宽度测试、数据契约与标量回退,避免把固定寄存器宽度写进可移植代码。421 收藏 -
讲清 Go 1.27 net/http 如何在 HTTP/2 服务端接收并处理 RFC 9218 客户端优先级信号,说明 DisableClientPriority 的默认行为、适用条件和排查方法。421 收藏 -
介绍Go bitset通过MarshalBinary和UnmarshalBinary编码恢复位集合,解释逻辑长度、内部字数组和字节序的区别,并提供流接口与错误处理示例。421 收藏 -
通过 CR、LF 和 CRLF 三组输入,说明 Go mime/quotedprintable.Writer 的 Binary 模式如何保留换行字节,以及它不会改变哪些编码规则。421 收藏 -
Go Badger 可以通过 Entry.WithTTL 设置键值的有效时长,再用 Txn.SetEntry 写入。本文说明 TTL 的写法、Get 读取边界,以及过期不可读和磁盘垃圾回收之间的区别。420 收藏