Go问答技术文章
-
bits.Mul64 的完整乘积等于 hi×2^64+lo,需要两个 uint64 或16字节保存。用固定大端编码和解码示例解释高低字布局,并用 hi!=0 判断结果能否装入 uint64。372 收藏 -
Go debug/dwarf 的 LineReader 可以用 Tell 保存当前行表位置,再用同一个 LineReader 调用 Seek 恢复。本文用一个紧凑示例说明保存时机、继续读取方式,以及 LineReaderPos 不能跨行表复用的边界。371 收藏 -
Go 1.23 的 maps.All 会把 map 转成 iter.Seq2,让 range 同时接收键和值。本文用对比场景说明最小写法、提前终止、无序语义、自定义 map 类型和选型边界。368 收藏 -
Go PNG 解码失败可用 errors.As 区分 FormatError 与 UnsupportedError,并保留 EOF、读取及压缩数据错误。本文给出错误链处理示例,说明值类型匹配、%w 包装与 DecodeConfig 的范围。368 收藏 -
Golang · Go问答 | 19小时前 | 标准库 · go · Go Content-Disposition mime/multipart NextPart NextRawPart quoted-printable
对比 Go multipart.Reader 的 NextPart 与 NextRawPart,说明 Content-Disposition 并非核心差异,重点解释 quoted-printable body 的透明解码边界与入口选择。367 收藏 -
用 Go 的 image.Point.In 判断坐标是否属于 image.Rectangle,理解左闭右开边界、非零起点和空矩形,并把判断接入点击与裁剪处理。365 收藏 -
Go XML Strict=false 只适合来源明确、缺陷可解释的兼容导入。说明缺失结束标签与未知实体的处理,区分 Strict、Entity、AutoClose 的职责,并给出独立输入流的完整 Token 比较示例。362 收藏 -
Go os.Lstat 升级后结果不同时,先固定输入与运行环境,再对照真实构建版本。通过原创只读探针、字段比较和环境矩阵,定位工具链、部署条件或应用展示层的差异。361 收藏 -
Go 的 Cmd.Wait 不只等待主进程退出,还可能等待 stdout、stderr 的复制循环收尾。本文用 WaitDelay 拆解后代进程遗留管道导致的阻塞,演示如何设置等待上限并用 errors.Is 判断 ErrWaitDelay,同时说明阻塞 Writer 和进程树管理的边界。359 收藏 -
Go crypto/rand.Prime 接收随机源和二进制位数,成功返回随机素数,bits 小于 2 或底层随机读取失败时返回错误。本文用一个小函数说明位数单位、错误传播,以及 Go 1.26 之后 Reader 参数的实际边界。353 收藏 -
Go container/list 的 Remove 会返回被删除节点的 Value。本文说明 any 类型断言、删除后的节点边界,以及遍历删除时保存 Next 的写法。353 收藏 -
Go bytes.Buffer 判断读取位置是否到末尾,核心看未读长度 Len() 是否为 0;循环读取时还要结合 n 和 io.EOF,区分空切片、容量和真正的读取结束。353 收藏 -
Go net/http.Transport 升级后出现连接复用、延迟或连接数变化时,不要先猜版本回归。本文用最小客户端、httptrace、Response.Body 生命周期和显式 Transport 配置,建立一套可比较的定位方法。349 收藏 -
Go 升级后 encoding/json.Decoder 的结果或错误发生变化时,不要先修改业务逻辑。本文按工具链、实现、Decoder 配置、输入字节和目标类型五层建立最小复现矩阵,说明如何区分真实语义差异与错误文本变化。347 收藏 -
Go 的 csv.Writer 默认使用 LF;面向依赖 CRLF 的 Windows 工具导出时,应在第一次写入前设置 UseCRLF=true,并在 Flush 后检查 Error。本文拆开换行、缓冲和错误边界。345 收藏