Go教程技术文章
-
Go hex.Dumper 的 Write 可能在输出行头、字节区或整行收尾时遇到底层 Writer 错误,而不足 16 字节的尾行要等 Close 才补齐。本文给出保留首个错误、正确处理 Close 并明确资源关闭责任的写法。297 收藏 -
连续压缩多段独立数据时,可以保留一个 flate.Writer,用 Reset 切换输出目标并复用内部状态;Flush 只用于流未结束时刷出当前数据,Close 才完成最终收尾。297 收藏 -
bytes.Lines 返回一个按行迭代的 iter.Seq[[]byte],通常保留每行末尾的换行符,未以换行结束的末行也会被返回。本文说明它的边界,并对比 bytes.Split 与 bufio.Scanner 的适用场景。297 收藏 -
Go filepath.Abs 以当前工作目录为基准转换相对路径。本文用配置读取示例说明错误处理、固定基准目录,以及文件存在性、符号链接和跨平台路径的职责边界。297 收藏 -
Go Testify 用 mock.Call.Run 接收 Arguments,在回调中取出并修改指针参数;本文区分 Run 与 Return,说明类型匹配、nil 防护和值参数边界。297 收藏 -
Go Gonum distuv 把分位点查询统一成 Quantile(p)。本文比较 Normal、Uniform 和 Exponential 的适用场景,给出 P50、P95 与尾部阈值的代码写法,并说明 p 范围、分布参数和极端值处理。297 收藏 -
Go 处理国际化文本时,unicode.IsNumber 可以按 rune 判断 Unicode Number 类字符。本文说明它与 unicode.IsDigit、ASCII 字节判断的区别,以及如何在遍历、索引和过滤场景中选择正确方法。297 收藏 -
用 Go 的 io.MultiWriter 把一次 Write 分发到多个 Writer,重点解释目标对象、指针形式、返回值以及某个目标出错后为什么后续目标不会继续收到本次数据。297 收藏 -
用一个可运行的 Go 客户端示例验证 NewRequestWithContext 的构造顺序、取消传播和 nil context 边界。296 收藏 -
用 Go 的 url.Values、Has、Get 和 ParseQuery 区分查询参数的缺失、空值、重复值与编码错误,并说明 Add、Set、Encode 的写回规则。296 收藏 -
用 Go time.LoadLocation 集中管理 IANA 时区,区分 Parse 与 ParseInLocation,统一 UTC 存储和 Time.In 展示,并说明夏令时与 tzdata 缺失时的处理边界。296 收藏 -
用 Go archive/tar 逐项读取归档,在写盘前校验条目路径,拒绝目录穿越、链接和特殊文件,并限制单项与总展开资源。296 收藏 -
Go 插件注册器若只检查方法名,错误参数或返回值会拖到反射调用时才触发 panic。本文复盘这一故障,演示如何用绑定方法的 reflect.Type 在注册阶段精确限制签名,并补齐 nil、重复名称、变参方法与表驱动测试。296 收藏 -
用 atomic.Pointer 发布不可变配置快照,让并发读请求通过 Load 获取完整配置,并用 Store 或 CompareAndSwap 替换指针槽位,避免读到半更新状态。296 收藏 -
Go math/big.Int 的 Append 方法会把整数按指定进制的文本表示追加到已有 []byte 缓冲区。本文说明缓冲区复用、进制与前缀、负数和 nil 边界,并对比 Bytes 与 FillBytes 的二进制语义。296 收藏