Go问答技术文章
-
strconv.Unquote 解析配置值失败,通常不是反斜杠本身不能出现,而是输入没有遵守 Go 字符串字面量的引号和转义规则。本文用路径配置拆开缺少引号、未知转义和重复转义三种情况,并给出统一处理与 Quote 配对的写法。203 收藏 -
ReadString在EOF时可能同时返回非空数据,过早退出会丢掉没有换行的末段。本文提供带状态的消费函数,区分空文件、空行、正常末段和读取异常,并说明CRLF、资源责任与实时追加输入的不同约定。203 收藏 -
区分 PE 结构、COFF 符号、DWARF 与 Go 构建记录,使用只读检查器和同源构建对照定位链接参数影响,说明 -s、-w 的作用及信息缺失时能够保留的结论。203 收藏 -
Go http.Transport.ReadBufferSize 用于调整 HTTP 客户端 Transport 读取连接时使用的缓冲区;零值沿用当前默认值,正值才覆盖默认。本文给出显式配置、源码生效位置、与响应头及超时字段的边界,以及调参前后的工程清单。203 收藏 -
用 Go 的 big.Rat.FloatPrec 判断分数能否精确写成有限小数,读懂 n 与 exact 的含义,并处理 FloatString 的舍入边界。203 收藏 -
Go encoding/csv 解析失败时,errors.As 可以取出 ParseError 的 StartLine、Line、Column 和底层 Err。本文用多行字段示例说明行列含义,并区分引号错误、字段数错误与业务定位。203 收藏 -
Go build 标签不生效时,文件名后缀与显式约束需要共同满足。本文用互补实现和 go list 文件归属说明平台后缀、自定义标签、测试文件及显式文件入口的区别。202 收藏 -
Go netip.ParsePrefix 并不会因为 CIDR 地址的主机位非零而拒绝输入。本文从 ParsePrefix 与 Prefix.Masked 的职责边界出发,解释 192.168.1.7/24 的解析结果、真正会触发错误的条件,以及如何在网段存储和 Contains 判断前做规范化。201 收藏 -
Merge Patch 对象成员中的 null 按 RFC 7396 表示删除。本文通过 Go 示例区分省略、删除与保留null,说明 JSON Patch 显式操作及数组、顶层值的语义边界。201 收藏 -
Go 子切片不会复制底层数组,小窗口长期存活也可能保留大缓冲区。通过缓存示例说明 make 加 copy 的修复位置,区分 Clip、容量限制、浅拷贝以及 GC 与进程内存的观察边界。201 收藏 -
Go bufio.Scanner 结果不稳定时,应分别检查临时缓冲复用、扫描错误、分词规则与异步顺序。通过有界串行示例说明 Text 快照、整批失败策略和数据交接边界。201 收藏 -
解释 Go encoding/asn1.Unmarshal 返回的 rest:如何区分顶层多余 DER 数据、连续对象解析,以及 SEQUENCE 内部未映射字段,避免把 err == nil 误判为输入已完全消费。201 收藏 -
billy.Filesystem 的 Rename 只在一个文件系统实例的路径空间内工作。跨实例移动要显式打开源文件、创建目标文件、复制内容,并在资源关闭成功后删除源文件。200 收藏 -
Go csvutil 按表头名称和 csv 标签匹配独立字段,而非依赖结构体位置。通过双样本小项目解释列重排,并说明无表头、表头失配和自定义字段依赖的边界。200 收藏 -
Go 服务中的 goroutine 数量持续增长,不要先猜是哪一行代码泄漏。先观察数量趋势,再用 goroutine profile 对比重复堆栈,沿着 channel、定时器、网络调用和 context 的生命周期找到没有退出条件的工作函数。200 收藏