Go教程技术文章
-
介绍 Go encoding/json 在动态解码时使用 Decoder.UseNumber 保留大整数文本,并安全转换为 int64、uint64 或 big.Int。328 收藏 -
Go 的文件上传接口不能只依赖前端限制。本文用 net/http 的 http.MaxBytesReader 包住请求体,拆解限制位置、超限后的 413 响应、读取顺序与连接复用边界,并给出可运行的处理函数和验收清单。327 收藏 -
内网模块代理不是简单把 GOPROXY 改成一个地址。本文拆开逗号与竖线的回源规则,并说明 GOPRIVATE、GONOPROXY、GONOSUMDB 如何组合,避免私有模块泄露或代理故障被误判为没有回源。327 收藏 -
讲清 Go x509.SystemCertPool 在 Linux 容器、macOS 和 Windows 中的兼容处理:系统池优先,异常时回退,追加自定义 CA,并区分根证书、PEM 和主机名错误。327 收藏 -
Golang · Go教程 | 3星期前 | 性能优化 · Go教程 · go bytes.Buffer bytes.Buffer Reset Go 缓冲区复用 Go Buffer 容量复用 Go Bytes 切片别名
Go 复用 bytes.Buffer 时,Reset 会把可读长度归零并保留底层存储。本文用连续写入、容量观察和 Bytes 切片复制说明正确用法与生命周期边界。327 收藏 -
Go 的 csv.Reader.LazyQuotes 只放宽双引号语法,不会取消字段数、分隔符和记录边界检查。本文按输入形态说明哪些脏 CSV 仍会失败,并给出可定位错误的读取写法。327 收藏 -
介绍 Go tls.ConnectionState 的三种读取入口,解析 TLS 版本、密码套件、ALPN、叶子证书和验证链,并说明空字段边界。327 收藏 -
围绕分块文件生成场景,验证 Go os.File.WriteAt 的独立偏移语义、并发写入边界、短写处理和最终文件验收方法。326 收藏 -
Go encoding/csv 的 FieldsPerRecord 决定每行字段数如何校验:正数固定列数、0 以首行定标、负数允许变化。本文用订单导入场景演示三种模式、错误定位与按行兼容策略。326 收藏 -
Go fuzz 发现失败输入后,不要只记日志。将它保存在 testdata/fuzz/FuzzXxx 目录,修复后用普通 go test 回归;本文说明 f.Add、失败语料文件、复现命令和目录不可写时的处理。326 收藏 -
Go vendor 不是简单复制依赖目录。本文说明如何用 go mod vendor 生成离线依赖,理解 vendor/modules.txt 的版本清单,并用 GOPROXY=off 检查构建是否真正摆脱网络和模块缓存。326 收藏 -
ReuseRecord 只影响 Reader.Read 返回的记录切片是否可复用,对 ReadAll 没有把全部记录变成单行复用的效果。本文比较两种读取方式的内存边界,并给出流式处理、保留记录和错误检查的选择方法。326 收藏 -
讲清 Go xml.Decoder.Token 如何从 io.Reader 逐个读取大型 XML,并用 DecodeElement、Skip、InputPos 和 Token 生命周期规则实现低常驻内存的单记录处理。326 收藏 -
Go 1.23 起,sync.Map.Clear 可直接删除并发映射中的全部条目,清空后仍能继续 Store 和 Load。本文通过可重置缓存示例说明基本用法、并发写入边界、旧版本兼容方案,以及需要严格换代时的原子指针切换设计。326 收藏 -
Go 的 os.ReadDir 返回 DirEntry,不必立刻为每个目录项读取完整 FileInfo。本文拆开 Type、IsDir、Info 的成本和错误边界,说明排序语义、符号链接判断以及适合目录扫描的最小写法。325 收藏