Go语言技术文章
-
Go 1.26 让 new 函数可以直接接收表达式,适合构造 JSON 可选字段和配置指针。本文从旧写法、版本门槛、兼容回退和最小验证说明哪些代码值得改、哪些不该急着改。226 收藏 -
分页接口里的 page、size 不是普通字符串:负数、超大整数和乘法溢出会把查询范围、内存占用甚至数据库压力一起带偏。本文用 Go 标准库拆开参数解析、上限校验、LIMIT/OFFSET 计算和验收清单。225 收藏 -
Golang · Go问答 | 4天前 | 标准库 · go · csv · 数据导入 · 错误定位 · Go encoding/csv FieldsPerRecord LazyQuotes ParseError
Go 导入 CSV 时,某一行多一个逗号就可能让整个读取流程报 ErrFieldCount。本文解释 FieldsPerRecord 的默认行为,给出允许可变列、保留原始行号和处理 LazyQuotes 的实战写法,避免把坏数据静默吞掉。224 收藏 -
Golang · Go教程 | 4天前 | 标准库 · go · csv · 数据导入 · 错误定位 · CSV导入 encoding/csv Go教程 FieldsPerRecord LazyQuotes
Go 标准库 encoding/csv 默认会用首条记录推断字段数,遇到不齐列或引号不规范的文件就可能在中途报错。本文用导入小工具拆开 FieldsPerRecord、LazyQuotes、ParseError 和逐行处理边界。216 收藏 -
用 Go strings.Cut 解析 key=value 配置行,区分分隔符缺失、空值和多余分隔符,比较 strings.Split 的误判与基准结果,给出可直接落地的解析边界。207 收藏 -
Go 程序从一组参数扩展成 build、serve、migrate 等子命令后,直接共用 flag.CommandLine 很快会遇到参数串台、Usage 输出混乱和错误码不一致。本文用 flag.NewFlagSet 搭一个小型命令行入口,拆开 Parse、帮助输出和失败退出的边界。205 收藏 -
Webhook 只校验 HMAC 签名还不够,攻击者仍可能重放一条合法请求。本文用时间戳限制有效窗口,用 nonce 做短期去重,并明确原始请求体、密钥轮换、幂等写入和审计日志的边界,给出 Go 服务可以落地的验签流程。187 收藏 -
Go 的 time.Ticker 适合固定节拍触发工作,但当一次任务比 tick 间隔更长时,调度、积压和取消边界很容易混在一起。本文用一个定时刷新任务说明 Stop 与 Reset 的正确位置,并给出带背压、可退出、可观测的写法。185 收藏 -
strings.Fields 适合按空白切分普通文本,却不能把带引号的命令参数当成一个整体。本文从文件名带空格的真实输入出发,比较 Fields、简单状态机和标准库参数解析的边界,并用表驱动测试固定转义行为。172 收藏 -
Golang · Go问答 | 4天前 | 随机数 · Go问答 · 安全编程 · crypto/rand · math/rand · 验证码 安全 随机数 Go crypto/rand math/rand
Go 里 crypto/rand 和 math/rand 都能生成随机值,但用途完全不同。本文用验证码、抽样和测试数据三个场景拆开安全资产、攻击路径、并发控制与验证方法,给出不容易选错的边界。163 收藏 -
Golang · Go问答 | 4天前 | HTTP · 流式处理 · Go问答 · encoding/json · 请求体 · Go DECODE eof 流式解析 json.Decoder JSON请求体
Go 用 json.Decoder 读取 HTTP 请求体时,第二次 Decode 得到 EOF 不一定是异常:它可能代表输入已正常读完,也可能是把单个 JSON 请求误当成了连续流。本文从单对象、尾随空白和多值 JSON 三种边界出发,给出最小判断、严格校验与可复查的读取流程。160 收藏 -
Go 的 json.Unmarshal 默认会忽略结构体中不存在的字段。本文用 Decoder.DisallowUnknownFields 给 HTTP JSON 接口加上字段契约,并说明兼容升级、错误定位和生产边界。160 收藏 -
Go 的 encoding/json 使用 omitzero 处理零值字段。本文用 time.Time、空切片和自定义 IsZero 场景,对比 omitempty 的判断并给出接口调整后的验收方法。158 收藏 -
Go 1.21 带来的 log/slog 不只是把日志改成 JSON。本文从一次请求日志难以检索的场景出发,解释结构化字段、Handler、级别过滤和高频日志的取舍,并给出一套可渐进迁移的检查方法。158 收藏 -
Go 服务写 Cookie 时,HttpOnly、SameSite 和 Secure 不是勾选项,而是分别对应脚本读取、跨站发送和传输加密边界。本文用 net/http 的最小写法说明属性组合、反向代理信任条件和可复查的安全检查。152 收藏