Go教程技术文章
-
Go 批量查询不能只检查 QueryContext 和 Scan。本文用稳定主键游标分批读取数据,并在每页推进游标前检查 Rows.Err、处理 Close 错误与上下文取消,避免把半页结果误判为成功。270 收藏 -
用 Go strings.TrimFunc 和 rune 判定函数清理字符串两端的 Unicode 字符,掌握中文、空字符串与内部字符的处理边界。270 收藏 -
Go slices.CompactFunc 接收自定义相等函数,把连续且满足业务规则的重复项压缩为一项。本文从 Go 1.21 的迁移范围出发,说明比较规则、原地修改、尾部清零、nil 切片和非相邻重复的边界。270 收藏 -
Go cipher.StreamReader 可以把已有的 cipher.Stream 与 io.Reader 组合成按需解密的读取器。本文说明密文 Reader、流密码、分块读取、EOF 处理、资源关闭和 AEAD 安全边界。270 收藏 -
Go 的 GIF 多帧数据使用 *image.Paletted 保存每个像素的调色板索引。本文从 image.NewPaletted 出发,说明矩形、调色板、索引像素与 gif.GIF.Image 的关系,并给出创建和检查帧图像的实用写法。270 收藏 -
Go 1.25 为 testing.T 增加了 Attr 方法,可以把稳定的测试元数据写进普通测试日志和 go test -json 的 attr 事件。本文用一个订单接口测试拆开 t.Attr 的调用位置、键值边界、JSON 验收方式,以及与 Log 和 Output 的分工。269 收藏 -
用同一个 httptest 服务验证 Go RoundTripper 总耗时与 httptrace.ClientTrace 分阶段耗时的差别,给出按排障目标选工具的边界。269 收藏 -
用 Go text/template/parse 运行同一份示例,检查 ActionNode、Pipeline 节点和语法错误位置,给模板静态检查留下可核对的证据。269 收藏 -
讲清 Go 使用 klauspost/compress/zstd 解压连续多帧数据时的四层内存边界:压缩输入、窗口、并发缓冲和累计输出,并给出流式硬上限实现与边界测试清单。269 收藏 -
Go 1.27 的 encoding/json/v2 可以通过 jsontext.Decoder 和 UnmarshalDecode 逐个读取连续的顶层 JSON 值。本文用完整 Go 示例说明 io.EOF 收尾、语法与语义错误边界,并比较单值 Unmarshal、v1 Decoder 与 JSON 数组的选择。269 收藏 -
Go exec.Cmd 应从命令环境副本追加受控覆盖,避免显式 Env 丢失继承项。本文说明 nil 与空切片、Dir 和 PWD、空值与删除,并给出完整示例及敏感变量继承的限制。269 收藏 -
用 fs.ValidPath 校验虚拟路径,再通过 path.Join 把调用方名称映射到带前缀的底层 FS,并说明 fs.Sub、错误路径和安全边界的取舍。269 收藏 -
围绕 os.ReadDir、File.ReadDir 和 io/fs.ReadDirFS 讲清目录条目的排序、分页、io.EOF 与 DirEntry 信息读取边界,帮助 Go 程序按场景选择接口。269 收藏 -
Go 泛型可以用 comparable 约束元素、用 map 记录已见值,在不改变输入顺序的情况下完成全局切片去重;元素不可比较时再通过 key 函数提取业务键。269 收藏 -
Go regexp.Regexp.NumSubexp 统计的是正则表达式中的捕获组数量,不包含完整匹配本身。本文用普通组、命名组和非捕获组说明结果下标怎样对应。269 收藏