Go教程技术文章
-
用 Go 的 image/draw.DrawMask 把源图按 Alpha 蒙版叠加到目标图,掌握坐标对齐、draw.Over 与常见偏移排查方法。338 收藏 -
Go 页面共享布局时,先解析公共模板,再在首次执行前 Clone;每个副本解析自己的同名 content 定义,最后缓存并执行 layout,即可隔离首页、后台等页面变体。361 收藏 -
Golang · Go教程 | 1个月前 | 标准库 · 模板 · web安全 · Go教程 · Go html/template 用户输入 HTML转义 html.EscapeString 上下文转义
Go 中将用户文本安全显示到 HTML 页面,可在明确的文本节点场景使用 html.EscapeString;页面模板更适合交给 html/template 按上下文自动转义。本文用最小留言页讲清实现、验收与边界。299 收藏 -
Go 计算大文件 CRC-32 不必先读完整文件。crc32.New 返回可持续写入的 hash.Hash32,配合 io.Copy 即可流式处理;需要进度控制时也能复用缓冲区手动分块。501 收藏 -
用 go/types.Eval 查询源码位置处表达式的类型和值,讲清 FileSet、Package、Pos 的配合方式、TypeAndValue 读取方法与 Check 的边界。480 收藏 -
讲清 Go token.FileSet.PositionFor 如何把 token.Pos 转成文件名、字节偏移、行号和列号,并比较 adjusted 参数与 //line 指令的实际影响。466 收藏 -
用 go/scanner 扫描 Go 源码时,ErrorCount 需要在完整 Scan 到 EOF 后读取;配合 ErrorHandler 可同时拿到错误位置和消息,不能只数 token.ILLEGAL。355 收藏 -
printer.Config 的 Indent 控制基础缩进层级,Tabwidth 和 Mode 决定制表宽度及空格策略。本文用完整 AST 示例讲清组合方式与 gofmt 边界。447 收藏 -
用 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 收藏