Go教程技术文章
-
Go 1.27 的 go fix 增加 unsafefuncs modernizer,可把部分 unsafe.Pointer 与 uintptr 指针运算改写为 unsafe.Add。本文用代码对比说明迁移范围,并给出预览、复核和提交前检查清单。257 收藏 -
fs.Glob 在指定 fs.FS 内按 path.Match 模式查找路径。本文用模板发现示例说明相对根、斜杠、通配符层级、空结果和模式错误,并解释为何它不能承担读取权限或完整性检查。257 收藏 -
Go flac 的 Stream.Seek 接收绝对采样编号并返回目标帧的首采样编号。本文说明怎样用 NewSeek 建立可定位流,再用 ParseNext 读取帧内内容,并处理 seek table、输入类型和范围错误。257 收藏 -
介绍 Go log/slog.NewTextHandler 的文本输出方式,说明 Writer、HandlerOptions、最低级别、默认 Logger、字段分组和 ReplaceAttr 的实战用法。257 收藏 -
Go unique.Handle 适合把高重复率的可比较值规范化为可比较身份。本文用字符串分类示例说明 unique.Make、Handle 比较、Value 取值、并发安全和内存收益边界。257 收藏 -
Go testing/quick 的 Config 可以同时控制随机输入和检查次数:用 math/rand.New(rand.NewSource(seed)) 固定 Rand,用 MaxCount 限制迭代上限。本文说明两者的优先级、生命周期和失败定位边界。256 收藏 -
Go embed 子目录读取需区分编译匹配位置、原始文件系统根与子视图根,本文用原创示例说明 fs.Sub、目录枚举、路径前缀及缺失资源的排查方法。256 收藏 -
Go 的 json.Encoder 可以用 SetIndent 设置 prefix 和 indent,让后续 Encode 输出带层级缩进;本文说明最小写法、参数选择、关闭方式,以及它与 MarshalIndent 的区别。256 收藏 -
Go 1.24 的 runtime.AddCleanup 适合为资源包装对象提供 GC 兜底,但 nil 指针、反向持有和退出时机都不能含糊处理。本文用分支基线和一个可显式关闭的文件包装器,说明异常路径应该如何收口。256 收藏 -
说明 time.Time.Round(0) 如何去掉单调时钟信息,区分 Equal、== 和 map 键规则,提供同源副本示例,并解释序列化、精度和 Location 一致性的边界。256 收藏 -
Golang · Go教程 | 5天前 | 错误处理 · go · Go encoding/base64 CorruptInputError io.ErrUnexpectedEOF NewDecoder
围绕 Go base64.NewDecoder 的流式读取,区分正常 EOF、残缺量子导致的 io.ErrUnexpectedEOF 与非法字符导致的 CorruptInputError,并给出先消费 n 再处理 err 的代码模式。256 收藏 -
通过原地压缩减少结果切片分配,并明确相邻去重、返回长度、别名共享和长期容量保留的取舍。256 收藏 -
Go 的 ctx.Err() 适合判断 Canceled 和 DeadlineExceeded,context.Cause(ctx) 则能在设置取消原因后保留更具体的根因。本文用父子 Context、主动取消和超时三个场景说明两者如何配合。255 收藏 -
用 Go 的 filepath.WalkDir 递归遍历目录时,如何只收集指定后缀的文件?本文比较 WalkDir、ReadDir 和 Glob 的边界,并给出大小写统一、目录继续遍历和错误处理的实用写法。255 收藏 -
Go 1.27 及以上模块中,go mod tidy 可以把重复的 require 块整理为直接与间接依赖块。本文说明版本条件、注释归属、go.mod 与 go.sum 差异以及 CI 复核边界。254 收藏