Go教程技术文章
-
Go unique.Handle 适合把高重复率的可比较值规范化为可比较身份。本文用字符串分类示例说明 unique.Make、Handle 比较、Value 取值、并发安全和内存收益边界。257 收藏 -
constant.Float64Val返回机器浮点值和精确性标志。本文给出允许有限近似的转换函数,区分普通舍入、下溢、溢出与未知输入,并说明如何把状态传给展示和导出。257 收藏 -
用 Go 1.24+ 的 os.OpenInRoot 和 os.Root 将文件打开限制在指定目录内,理解相对路径、符号链接、错误边界与旧代码迁移方式。256 收藏 -
使用 Go log/slog 的 JSONHandler 输出结构化日志,用 request、user 分组区分业务字段,并通过 ReplaceAttr 统一脱敏密码、令牌等敏感值。256 收藏 -
Go 服务可以让请求边界把 trace_id 写入 context,再由 slog 自定义 Handler 在日志出口统一补充字段。本文给出可直接复用的包装器、中间件和 OpenTelemetry 提取方式,并说明伪造、覆盖与隐私边界。256 收藏 -
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教程 | 6天前 | 错误处理 · go · Go encoding/base64 CorruptInputError io.ErrUnexpectedEOF NewDecoder
围绕 Go base64.NewDecoder 的流式读取,区分正常 EOF、残缺量子导致的 io.ErrUnexpectedEOF 与非法字符导致的 CorruptInputError,并给出先消费 n 再处理 err 的代码模式。256 收藏 -
通过原地压缩减少结果切片分配,并明确相邻去重、返回长度、别名共享和长期容量保留的取舍。256 收藏 -
本文说明 strconv.QuoteRune 如何把单个 rune 转成可复用的 Go 字符字面量,并对比控制字符、Unicode、ASCII 与图形字符场景下的函数选择。256 收藏 -
Go slog.LevelVar 适合把日志级别做成可并发更新的运行时开关。本文用一个 HTTP 管理入口演示 LevelVar、Handler 与回滚配置的配合,重点核对动态生效、并发读取和错误配置不污染当前级别。255 收藏 -
用 Go filepath.WalkDir 递归过滤指定扩展名文件,正确处理目录、符号链接、根路径失败和子目录读取错误,保留部分结果与错误清单。255 收藏