Go教程技术文章
-
介绍 Go x/text/encoding/unicode 中 UTF16 的字节序与 BOMPolicy 配置,说明 IgnoreBOM、UseBOM、ExpectBOM 和 BOMOverride 在读写 UTF-16 时的区别与选择方法。449 收藏 -
Go typeutil.Map 适合把 go/types 产出的 types.Type 作为键,并按类型等价关系保存任意值。本文从类型检查结果取出类型对象,演示 Set、At、Iterate 的用法,说明普通 map、字符串键、并发读写和 Hasher 的边界。449 收藏 -
用 Go 1.25 的 os.Root.RemoveAll 在固定根目录内递归清理子目录,掌握路径校验、错误分层、Root 关闭和版本平台边界。449 收藏 -
Golang · Go教程 | 2个月前 | 标准库 · 并发安全 · 配置管理 · Go教程 · 文件系统 · 配置热更新 os.Rename embed.FS Go embed fs.ReadFile
Go embed 适合把默认配置随二进制发布,但运行时热更新不能直接覆盖嵌入文件。本文用 embed.FS 读取默认值,再通过临时文件校验和 os.Rename 原子替换外部配置,处理并发读取、失败回滚与发布检查。448 收藏 -
用 Go 的 net/netip Prefix.Masked 把带主机位的 CIDR 统一成稳定网段键,并说明无效前缀、IPv4 与 IPv6 的处理边界。448 收藏 -
讲清 Go crypto/tls Config.MinVersion 的最低版本语义,比较 MinVersion 与 MaxVersion 的范围配置,并用 ConnectionState 判断实际协商结果。448 收藏 -
Go 用 atomic.Bool 表示一次性状态时,核心是让所有调用共享同一个对象,并用 CompareAndSwap(false, true) 竞争唯一成功者。本文区分 Load、Store、Swap 和 CompareAndSwap 的边界,说明重复调用、重置、复制和多字段一致性问题。448 收藏 -
Golang · Go教程 | 2个月前 | goroutine · pprof · Go教程 · 运行时 · Go label runtime/pprof Do ForLabels goroutine 归因
线上 CPU profile 只能告诉你哪里忙,却不一定能说明是哪类任务在忙。本文用 runtime/pprof 的 Label、Do、ForLabels 和 SetGoroutineLabels 给请求打上可检索的任务标签,并说明标签继承、覆盖、读取和采样查看的边界。447 收藏 -
高频日志过滤不要在每条日志到来时重新解析正则。本文用一个小型过滤器演示 regexp.Compile 的初始化时机、*regexp.Regexp 的并发复用,以及动态改规则时如何隔离可变配置。447 收藏 -
Go 用 io.CopyN 从网络连接复制固定块时,完整条件不是只看错误是否为空;本文说明如何设置 SetReadDeadline,结合 written、io.EOF 和 os.ErrDeadlineExceeded 处理半包、总时限与空闲超时。447 收藏 -
对比 Go strings.CutPrefix 与 strings.TrimPrefix 的返回值和适用场景,说明何时需要 found 判断、何时只需得到去掉前缀后的字符串,并补充空前缀、大小写和旧版本兼容边界。447 收藏 -
解释 Go encoding/xml Decoder.Strict=false 对缺失结束标签、异常实体和命名空间的实际影响,并说明 AutoClose、Entity 的配置边界与生产选择。447 收藏 -
介绍 Go slog.Group 如何组织 request、order、payment 等嵌套业务字段,并比较 Logger.WithGroup、LogValuer、JSONHandler 与 TextHandler 的适用方式。447 收藏 -
printer.Config 的 Indent 控制基础缩进层级,Tabwidth 和 Mode 决定制表宽度及空格策略。本文用完整 AST 示例讲清组合方式与 gofmt 边界。447 收藏 -
围绕 Go html/template 的函数注册、模板解析和数据执行三个阶段,给出可复制的错误处理写法,说明 ParseFS、ExecuteTemplate、missingkey 与 HTML 转义边界。447 收藏