Go教程技术文章
-
本文用一个小项目说明 Go html/template 如何让用户输入按 HTML 上下文自动转义,并把模板解析放到初始化阶段、在批处理循环中复用模板与 bytes.Buffer,减少无意义的重复分配。103 收藏 -
Go fmt.Formatter 要通过 Format 方法把内容写入 fmt.State;只实现方法签名还不够。本文用自定义指标类型说明动词分派、宽度精度、值与指针接收者、别名类型防递归,以及输出为空或不符合预期时的排查顺序。103 收藏 -
Go 的 constant.Real 和 Imag 分别读取复数 Value 的实部与虚部,返回结果仍是 constant.Value。本文说明 MakeImag 与 BinaryOp 的组装方式、Unknown 传播,以及 Float64Val 转换时如何判断精度损失。103 收藏 -
Go csv.Reader 开启 ReuseRecord 后,Read 返回的记录切片可能复用上一轮的底层数组。本文用一个导入场景说明覆盖原因,并给出立即消费、复制保存和异步传递时的选择方法。102 收藏 -
encoding/xml 默认按 UTF-8 解析 XML。本文用 CharsetReader 按声明分派 GBK、Windows-1252 和 Shift_JIS 转换器,把输入接成 UTF-8 Reader,并区分未知字符集、转换失败、XML 语法错误和业务校验错误。102 收藏 -
Go inspector.WithStack 会把当前 AST 遍历路径以 []ast.Node 传入回调,本文用一个完整示例说明 stack 的顺序、push/pop 语义、剪枝方式,以及为什么保存祖先链时要复制切片。102 收藏 -
用 Go Doublestar 的 WithNoFollow 控制递归匹配遇到目录符号链接时的遍历边界,并说明固定路径前缀、WithFilesOnly 与 WithFailOnIOErrors 的组合注意事项。102 收藏 -
围绕 Go 1.23 引入的 iter.Pull,说明 next 返回值与 ok 标志如何判断空序列和自然结束,并用 defer stop 覆盖提前退出、限量读取与找到目标值等边界场景。102 收藏 -
Go image/draw 的偏移绘制关键在目标矩形 r.Min 与源点 sp 的对齐。本文用最小示例说明 image.Rect、源图像边界、越界裁剪以及 draw.Src 和 draw.Over 的选择。101 收藏 -
Go text/template 默认允许 map 缺键继续执行,容易把数据问题变成空白或。本文用 Template.Option("missingkey=error") 让缺字段在 Execute 阶段返回错误,并对比 default、zero、error 的边界。 101 收藏 -
Go groot可用Get按对象键名读取ROOT数据,但需要判断直方图类型。本文给出TH1D、TH1F、TH1I读取与hbook转换示例,说明分箱权重、错误反馈和目录范围。101 收藏 -
Go maps.Clone 适合把一个 map 配置复制成独立的顶层工作副本,再组合读取、更新和快照导出逻辑。本文从浅复制边界出发,搭建一个小型配置工具,并说明 nil、嵌套切片和并发访问的取舍。101 收藏 -
Go 文件写入成功不代表 Sync 和 Close 一定成功。本文按 Write、Sync、Close 的责任边界拆开说明错误处理顺序,并给出既能延迟关闭又不会覆盖前置错误的写法。101 收藏 -
使用 go/types 分析泛型接口时,NumEmbeddeds 与 EmbeddedType 可以枚举任意嵌入类型;Go 1.24 还提供 EmbeddedTypes 迭代器。本文说明联合约束、Complete 调用和旧 Embedded API 的兼容边界。101 收藏 -
本文用 Go io.Pipe 连接生产者与消费者,说明同步无缓冲读写、正常关闭、CloseWithError 错误传播、读端提前退出和适用边界。100 收藏