Go教程技术文章
-
Golang · Go教程 | 1个月前 | JSON · go · 兼容性 · encoding/json/v2 未知字段 jsontext.Value MarshalerTo UnmarshalerFrom
encoding/json/v2 可用 json:",embed" 将未知成员收进 map[string]jsontext.Value。实现自定义 MarshalerTo 时必须在线形态中显式携带该回退字段,本文对比三种方案并给出可复用的成对编解码实现。318 收藏 -
说明 Go time.AfterFunc 的 Stop 返回值、回调竞态及 nil 通道边界,给出一次性取消并等待包装器,用 Context 请求退出、done 确认完成,避免把停止触发误当作终止回调。318 收藏 -
Go compress/gzip 的 Reader 会在创建或 Reset 后暴露 gzip Header。本文说明怎样读取 Header.Name、为什么文件名可能为空,以及多成员 gzip、完整读取和校验关闭的边界。318 收藏 -
Golang · Go教程 | 2星期前 | goroutine · HTTP服务 · pprof · Go教程 · Go goroutine泄漏 Go诊断 net/http/pprof goroutine profile pprof.Handler
用 Go net/http/pprof 暴露 goroutine 诊断入口时,关键不是把 /debug/pprof/ 直接公开,而是隔离监听器、自定义 mux、限制访问边界并记录采集动作。本文给出 goroutine profile 的最小接入方式、seconds 参数的使用边界和安全收尾清单。318 收藏 -
go doc 默认输出包或符号的文档,增加 -ex 后会把与目标绑定的可执行示例一并打印。本文从示例命名、命令参数、输出注释和常见边界说明怎样直接查看示例实现。318 收藏 -
Go 反射中调用 Value.Addr 前,必须先确认 Value 是否可寻址。本文用 CanAddr 串起普通值、指针解引用、切片元素、结构体字段与 map 索引的边界,并说明它与 CanSet、CanInterface 的区别。318 收藏 -
Go x/text/cases 的 Title 可以结合语言标签生成标题式大小写。本文用普通标题、NoLower、String/Bytes/Transform 和 Caser 并发边界说明怎样选参数与避免误用。318 收藏 -
Go x/image/font/sfnt 的 GlyphIndex 用于把 rune 映射到字体中的字形索引。本文从缺字症状出发,说明字体解析、Buffer 复用、返回 0 的含义,以及如何继续读取字形名称、边界和轮廓。318 收藏 -
用 Go archive/tar 读取 tar 条目的 PAXRecords 扩展属性,本文覆盖 Reader.Next、键存在判断、命名空间、Xattrs 等价关系和写入优先级。318 收藏 -
Go Validator 的 dive 用于把校验规则下沉到切片元素。本文用批量邮箱和订单明细示例说明容器规则、元素规则、嵌套结构体、错误下标与空值边界的写法。318 收藏 -
Go HTTP 服务端用 MaxBytesReader 限制请求体后,应该通过 errors.As 区分正常读取、超过上限和其它读取错误。本文给出带 Close 的 handler 写法,并说明大小限制与业务校验的边界。318 收藏 -
Go 的 ctx.Err() 只能告诉你上下文已取消或超时,context.Cause(ctx) 则能在使用 WithCancelCause 或 WithTimeoutCause 时读取更具体的原始原因。本文用最小示例说明两者差异、父子上下文传播和工程接入边界。318 收藏 -
Go encoding/json 处理连续 JSON 对象时,可以为同一个 io.Reader 创建 json.Decoder,反复 Decode 并用 io.EOF 结束。本文封装一个可复用的泛型读取函数,说明空输入、语法错误、数组边界和大流式输入的处理方式。318 收藏 -
用一个最小 Go 源码分析器读取 types.Info.Selections,解释 Selection.Kind 返回 FieldVal、MethodVal 和 MethodExpr 的差异,重点区分 p.Run 方法值与 Worker.Run 方法表达式,并输出接收者、函数类型和嵌入路径。318 收藏 -
path/filepath.Rel 不是任意两个绝对路径都能计算相对路径。本文从 VolumeName 入手,解释 Windows 盘符、UNC 共享路径和 Unix 路径的差异,并给出保留错误的跨平台写法。318 收藏