Go教程技术文章
-
用 Go parser.ParseExprFrom 解析单个表达式,结合 token.FileSet 还原文件名、行列和偏移,并说明语法错误时部分 AST 的处理边界。133 收藏 -
本文用一个原创 Go 示例说明 importer.ForCompiler 如何选择 gc、gccgo 或 source,如何配合 token.FileSet 与 go/types 读取类型信息,以及 Lookup、模块路径和 cgo 边界。246 收藏 -
Go format.Source 接收内存中的 []byte 源码,解析成功后返回标准 gofmt 风格的字节,语法不完整则返回错误。本文用一个小型代码生成器演示完整文件、局部源码、导入排序、错误包装和测试方法。123 收藏 -
使用 go/parser 把同一 Go 包的多个源码文件解析到共享 FileSet,再调用 doc.NewFromFiles 生成包文档;同时说明 _test.go 示例、构建约束和 PreserveAST 的使用边界。422 收藏 -
用 Go constant.ToInt 判断编译期数值能否精确表示为整数,并进一步说明 constant.Int、constant.Unknown、Int64Val 与目标整数类型范围之间的区别。194 收藏 -
使用 Go 标准库 build.Context.ImportDir 按目标平台和标签分析源码目录,统计纳入、忽略、测试及无效文件并比较环境差异。168 收藏 -
使用 ast.Inspect 查找节点的关键是先按具体 AST 类型断言,再检查名称等字段条件,并用回调返回值控制子树遍历。本文给出函数调用查找、位置记录与常见陷阱。197 收藏 -
Go fmt.Appendf 会把格式化结果追加到已有 []byte,并返回更新后的切片。本文说明如何接住返回值、连续追加字段、处理 len 与 cap 边界,以及 Go 1.19 之前的兼容写法。152 收藏 -
Golang · Go教程 | 2星期前 | 标准库 · HTTP服务 · Go教程 · 可观测性 · Go expvar expvar.Publish 运行指标 expvar.Func debug vars
Go 的 expvar.Publish 可把实现 Var 的对象注册到全局表,并由 /debug/vars 输出 JSON。本文用 Func、Int 与 Map 组合自定义运行快照,并说明路由和安全边界。466 收藏 -
Go 1.26 的 errors.AsType 用泛型类型参数从包装错误和错误树中提取具体类型,本文说明指针和值、遍历顺序、自定义 As 方法及生产排查边界。127 收藏 -
讲清 Go xml.Decoder.Token 如何从 io.Reader 逐个读取大型 XML,并用 DecodeElement、Skip、InputPos 和 Token 生命周期规则实现低常驻内存的单记录处理。326 收藏 -
讲清 Go pem.Decode 的 block/rest 返回关系,给出连续读取多个 PEM 区块的循环、nil 退出边界和按 Type 分流解析的方法。344 收藏 -
json.Decoder.InputOffset 给出当前解码边界;语法或类型错误则应优先使用对应错误的 Offset。文章提供安全截取附近原始字节、处理流式输入和 UTF-8 字节位置的完整方法。298 收藏 -
Go hex.Dumper 可以接入任意 io.Writer,按分块写入生成带偏移、十六进制和 ASCII 列的可读转储。文章说明 16 字节分行、Close 尾行收尾、错误处理及与 Dump、EncodeToString 的选择边界。159 收藏 -
Go gob.RegisterName 可以为接口值中的具体类型指定稳定线上名称。本文用生产者与消费者小项目演示共享名称常量、本地类型注册、接口编码、重复注册 panic 以及结构体字段兼容升级边界。352 收藏