Go语言技术文章
-
Go json/v2 MarshalWrite 用于把 Go 值直接编码到 io.Writer。本文说明 Writer 与值的参数顺序、编码选项、无换行行为,以及 HTTP 输出发生错误时应直接写出还是先缓冲。133 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · JSON · 错误处理 · go · 调试 · Go errors.As encoding/json/v2 SemanticError JSONPointer
Go encoding/json/v2 解码失败时,SemanticError 会携带 ByteOffset、JSONPointer 和 GoType 等上下文。本文用嵌套配置示例说明如何提取这些字段、转换行列位置,并区分语法错误、语义错误与流式读取错误。477 收藏 -
Golang · Go教程 | 1星期前 | 接口 · 标准库 · go · Go AppendBinary encoding.BinaryAppender BinaryMarshaler 二进制编码
Go encoding.BinaryAppender 的 AppendBinary 接收已有字节切片并返回追加后的结果。本文说明如何保护已有前缀、避免保存调用方缓冲区,并让 BinaryMarshaler 与追加编码保持同一语义。463 收藏 -
用 Go parser.ParseFile 做源码分析时,注释为空或节点位置无法回溯,通常不是 AST 丢了信息,而是漏传 ParseComments、没有复用 token.FileSet,或忽略了解析错误。本文从症状、根因到修复代码说明三者如何配合。168 收藏 -
Go encoding/json/v2 的 Options 不是一份只能全局修改的开关表,而是可以随调用组合的配置值。本文用编码、解码和 v1 兼容三个场景说明选项作用面、覆盖顺序与迁移边界。129 收藏 -
Go crypto/ecdh.PrivateKey.Equal 用于判断两个私钥对象是否代表同一把 ECDH 私钥。本文说明同一曲线、类型匹配、常量时间比较和 Bytes 编码之间的边界。462 收藏 -
Go 的 debug/pe 将 PE 文件的 OptionalHeader 暴露为 32 位或 64 位具体结构。本文用一个紧凑的类型 switch 读取 AddressOfEntryPoint 与 ImageBase,解释入口点 RVA、虚拟地址和文件偏移的区别,并补上解析失败与不可信输入的处理边界。128 收藏 -
先打开一个可复用的 os.Root,再用相对路径调用 Root.OpenFile;文章说明返回文件句柄的使用方式,以及 Root 与 *os.File 的关闭边界。486 收藏 -
Go go/format.Node 可以把 ast.File、声明、语句或表达式节点写成 gofmt 风格的 Go 源码。本文从 FileSet 和 parser 开始,说明完整文件与局部节点的差异、注释处理以及 AST 或 Writer 出错时的处理方式。279 收藏 -
Go 1.27 工具链中的 waitgroupgo 更适合做 WaitGroup 代码现代化迁移。本文区分 go vet 检查与 go fix 差异预览,说明 Add、goroutine、Done 组合的修复顺序,以及闭包、错误处理、递归启动和旧工具链兼容边界。135 收藏 -
Go 的 io/fs.FileMode 同时携带文件类型位和权限位。本文从 FileInfo、DirEntry、IsDir、IsRegular、Type、Perm 几个入口说明如何区分目录、普通文件与符号链接等特殊类型,并补上遍历时的错误处理边界。259 收藏 -
Go 的 archive/tar.Writer.AddFS 可以直接接收 fs.FS,遍历目录树并保持相对路径写入 tar。本文用 os.DirFS 拆解归档根目录、AddFS、Close 和生产环境错误处理边界。303 收藏 -
Go stringsseq 适合把只遍历一次的 strings.Split 或 strings.Fields 迁移为 SplitSeq、FieldsSeq,减少临时切片分配。本文说明适用边界、go fix 预览方法、版本要求以及索引、重复遍历和语义回归检查。406 收藏 -
Go 1.27 的 go fix 新增 slicesbackward,可以把满足固定形状的倒序切片循环迁移为 slices.Backward。本文从输入边界、索引依赖、版本条件和预览方式说明何时适合使用。333 收藏 -
在 Go 静态分析中,类型别名不能只按 Named 类型处理。本文用 go/types.Alias.Rhs 读取 type A = R 的右侧类型,并说明 Alias、别名链与 types.Unalias 的边界。477 收藏