Go问答技术文章
-
encoding/csv.Reader 默认会用第一条记录的字段数约束后续记录。本文说明 FieldsPerRecord 的三种配置方式,演示如何在严格校验、可变列和保留错误行之间做选择,并处理字段数量变化带来的导入问题。230 收藏 -
Golang · Go问答 | 3星期前 | 连接池 · 性能排查 · HTTP客户端 · Go问答 · Go 连接复用 MaxIdleConns http.Transport MaxIdleConnsPerHost MaxConnsPerHost
Go http.Transport 的 MaxIdleConnsPerHost 控制每个主机保留的空闲 keep-alive 连接数,不等于并发总数或所有主机总量。本文区分相关字段,并给出长期复用 Transport 的配置方式和连接复用排查路径。230 收藏 -
Go regexp.Regexp SubexpIndex 返回命名捕获组的数字下标,不存在时返回 -1。本文拆开说明组名存在、输入匹配和本次捕获值三种状态,给出安全读取命名组的原创示例。230 收藏 -
说明 Zerolog UpdateContext 修改共享上下文的并发风险,用完整 Go 示例派生任务局部子日志器,区分结构体浅拷贝、事件字段、Writer 同步及回滚观察项。230 收藏 -
sync.Once 保证回调只执行一次,并不保证执行到成功。文章区分永久保留首次结果、启动初始化与成功缓存,给出互斥保护的可重试配置示例,并说明取消等待、重试频率和资源生命周期的限制。229 收藏 -
Go HTTP 请求已经取消,但 Handler 仍不退出时,先确认 Context 信号,再按下游调用、channel、锁和响应写入逐层定位真正的阻塞点。229 收藏 -
Go Flock 的 Locked() 只反映当前 Flock 实例,不能代表其他进程是否持有同一路径的文件锁。本文用实例边界、TryLock 竞争、Unlock 生命周期和 Stat 元数据说明正确判断方式。229 收藏 -
说明 go-smtp Data 写入器关闭的提交语义,区分内容传输、服务器接受和最终投递,提供正常关闭与异常弃用连接的 Go 示例。229 收藏 -
go/types.NewSignatureType 用 variadic 标记源码中的 ... 语法,但参数元组仍保存完整的切片类型。因此 func(string, ...any) 的最后参数是未命名 []any,而不是 any。本文说明这种表示的原因、常见构造错误、类型参数边界和 append 的特殊规则。229 收藏 -
Go 在 ARM、386 和 32 位 MIPS 上对 64 位原子操作有额外的对齐要求。本文从结构体字段布局入手,说明如何识别中间字段错位、改用类型化原子类型,以及必须使用旧式函数时怎样重排字段。228 收藏 -
Go 依赖下载失败要区分模块代理与校验服务。本文解释 GOPROXY 回退、GOSUMDB 与 go.sum 的职责,并给出固定单模块项目准备 vendor、工具链及离线构建的方案。228 收藏 -
Go 的 HTTP 请求体是一次性读取流,前置中间件、表单解析或 JSON 解码器读到 EOF 后,后面的 io.ReadAll 就可能得到空结果。本文说明如何定位消费点、缓存原始字节、重置 Request.Body,并处理空请求体、大小限制和提前关闭等边界。228 收藏 -
Go bufio.Reader.ReadString 可能同时返回已读文本和 io.EOF。本文用一个按行读取的小工具说明分隔符、尾部数据与错误状态的关系,并给出先处理数据再判断错误的可靠循环。228 收藏 -
Go time.Time 序列化后失去单调部分是设计如此:单调时钟只对当前进程有意义,JSON、Gob、二进制和文本序列化都会省略它。本文拆解比较、相等判断与耗时统计的正确边界。228 收藏 -
Go net.ListenConfig.MultipathTCP 和 SetMultipathTCP 怎样控制监听器是否使用 MPTCP,本文说明开关优先级、TCP 回退边界与最小代码写法。228 收藏