Go语言技术文章
-
Fscan 把换行视为普通空白,可跨行读取参数;Fscanln 在换行处停止,并要求最后一个参数后紧接换行或 EOF。本文用同一输入说明选择与错误边界。100 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · HTTP服务 · Go教程 · 可观测性 · Go expvar expvar.Publish 运行指标 expvar.Func debug vars
Go 的 expvar.Publish 可把实现 Var 的对象注册到全局表,并由 /debug/vars 输出 JSON。本文用 Func、Int 与 Map 组合自定义运行快照,并说明路由和安全边界。466 收藏 -
Go 的 fmt 在格式化实现 Stringer 的值时会调用 String;如果 String 再把原接收者交给 fmt,就可能反复分派。本文给出复现、修复与方法集边界。267 收藏 -
Go 1.26 的 errors.AsType 用泛型类型参数从包装错误和错误树中提取具体类型,本文说明指针和值、遍历顺序、自定义 As 方法及生产排查边界。127 收藏 -
Go flag.Parse 放在 init 中并非语法错误,但可能早于同包其他 flag 的注册,导致未知参数、默认值未生效或参数边界被提前消费。本文用初始化顺序和 FlagSet 示例说明正确修复方式。157 收藏 -
讲清 Go xml.Decoder.Token 如何从 io.Reader 逐个读取大型 XML,并用 DecodeElement、Skip、InputPos 和 Token 生命周期规则实现低常驻内存的单记录处理。326 收藏 -
Golang · Go问答 | 1星期前 | 标准库 · HTTP服务 · 可观测性 · Go问答 · Go expvar http.ServeMux expvar.Handler /debug/vars 运行指标
解释 Go expvar.Handler 与默认 /debug/vars 的关系:两者输出同一份全局变量,区别在路由注册方式、ServeMux、访问路径和方法限制,并给出自定义挂载、访问控制与 httptest 验证示例。386 收藏 -
讲清 Go pem.Decode 的 block/rest 返回关系,给出连续读取多个 PEM 区块的循环、nil 退出边界和按 Type 分流解析的方法。344 收藏 -
Go errors.Is 已经负责沿 Unwrap 展开错误树,自定义 Is 只应判断当前节点。本文用原创示例说明递归调用 Unwrap 的重复遍历、语义越界和循环风险,并给出可复用的错误类型写法。316 收藏 -
json.Decoder.InputOffset 给出当前解码边界;语法或类型错误则应优先使用对应错误的 Offset。文章提供安全截取附近原始字节、处理流式输入和 UTF-8 字节位置的完整方法。298 收藏 -
errors.Join 会先丢弃 nil,并统计剩余错误;当非 nil 数量为零时直接返回 nil。文章结合结果矩阵、标准库源码、错误树检查和 typed nil 边界说明这一设计。284 收藏 -
Go hex.Dumper 可以接入任意 io.Writer,按分块写入生成带偏移、十六进制和 ASCII 列的可读转储。文章说明 16 字节分行、Close 尾行收尾、错误处理及与 Dump、EncodeToString 的选择边界。159 收藏 -
说明 Go xml.Decoder.Strict=false 会修补哪些标签、实体和属性问题,并区分 AutoClose、Entity、输入限制与业务校验的职责。139 收藏 -
Go gob.RegisterName 可以为接口值中的具体类型指定稳定线上名称。本文用生产者与消费者小项目演示共享名称常量、本地类型注册、接口编码、重复注册 panic 以及结构体字段兼容升级边界。352 收藏 -
Go 默认把解码到 interface{} 的 JSON 数字变成 float64,UseNumber 则先保留为 json.Number。本文用示例说明精度变化发生在哪里、如何解析以及金额等场景的边界。463 收藏