Go语言技术文章
-
解释 Go httptest.NewTLSServer 与默认 Transport 的证书信任差异,给出使用 ts.Client() 以及克隆测试 Transport 的正确写法。175 收藏 -
Go 先用 image.DecodeConfig 读取图片格式、宽高和颜色模型,再按像素预算决定是否调用 Decode,适合上传校验和内存保护。307 收藏 -
Go HTTP 服务收到 SIGTERM 后,用 NotifyContext 接管信号,再以带截止时间的 Server.Shutdown 停止监听并等待活动请求完成。222 收藏 -
Go zip.NewReader 不能直接接收普通 io.Reader。本文用 bytes.Reader 和临时文件说明如何提供 ReaderAt、准确 size,并正确处理 ZIP 成员资源。444 收藏 -
Go os/signal.Notify 向 channel 发送时不会阻塞,缓冲已满的通知可能被丢弃。本文按退出信号、多个信号和慢消费者三类场景说明容量选择、消费循环、NotifyContext 与可靠状态记录。190 收藏 -
Go archive/zip 中 FileHeader.Method 不是任意压缩等级。本文解释 Store、Deflate、ErrAlgorithm、CreateHeader 与 CreateRaw 的边界,并给出写入错误、Close 收尾和读回校验的排查方法。358 收藏 -
signal.NotifyContext 返回的 stop 不只是结束 context,它还会注销信号接管并释放关联资源。本文用优雅退出、重复测试和短生命周期任务说明 stop 的调用时机与边界。282 收藏 -
Go archive/zip.File.Open 返回的是 io.ReadCloser。本文区分条目读取器与 ZIP 归档读取器的关闭责任,并给出单条函数、批量遍历和错误处理的安全写法。397 收藏 -
Go encoding/gob 解码到已有结构体时不会先清空目标,流中缺少的字段和发送端被省略的零值字段可能继续保留旧内容。本文用最小示例说明字段合并语义,并比较复用目标、解码到新变量和存在性字段三种处理方式。319 收藏 -
Go 使用 csv.Reader.ReuseRecord 读取 CSV 时,直接保存 Read 返回的切片可能让上一行被后续数据覆盖。本文解释底层数组复用,并给出保存前复制的安全写法。455 收藏 -
Go encoding/gob 传输接口值时需要注册实际承载的具体类型。本文用 Shape 和 Circle 拆解静态类型、动态类型与流中类型名的关系,给出值和指针注册边界、跨进程初始化方式,以及用错误数、分配次数和消息大小验证修复的方法。454 收藏 -
Go 的 csv.Reader.LazyQuotes 只放宽双引号语法,不会取消字段数、分隔符和记录边界检查。本文按输入形态说明哪些脏 CSV 仍会失败,并给出可定位错误的读取写法。327 收藏 -
Go encoding/gob 不会传输 nil 指针,但当流中存在指针字段时,Decoder 会为 nil 目标字段分配对象。本文用 Envelope 示例拆开这层语义,并给出 HasMeta 加值字段的传输结构,避免把隐式分配误当成业务状态。169 收藏 -
Golang · Go教程 | 2星期前 | 文件读取 · Go教程 · Go csv.Reader Comment Go CSV 跳过注释行 encoding/csv 注释字符 csv.Reader 前导空白
Go 的 csv.Reader 可以通过 Comment 跳过以指定字符开头的整行,但前导空白会改变判定结果。本文用原创示例讲清配置方式、字段边界、错误处理与不规则 CSV 的选择策略。215 收藏 -
Go base64.CorruptInputError 中的数字是原始输入的零基字节偏移,不是解码结果长度。本文用 errors.As 提取偏移,并说明非法字符、换行、补位和 Strict 模式的排查边界。280 收藏