Go问答技术文章
-
archsimd 目标实现是否被选中取决于 GOEXPERIMENT=simd、目标 GOARCH、文件名隐式约束和显式 //go:build 的共同结果,运行时 CPU 特性检查不会改变已编译文件。354 收藏 -
Go flight recorder 的缓冲区太小时不会按事件类型选择性丢弃,而会淘汰较老的完整 trace generation。本文解释 MaxBytes 与 MinAge 的优先级、会缺失的上下文及容量配置方法。354 收藏 -
Go 标准库没有统一的跨平台文件锁 API。本文比较 Unix flock 与 Windows LockFileEx 的竞争、清理语义,再给出原子占位、数据库和 Redis 等替代策略。354 收藏 -
Golang · Go问答 | 2星期前 | TLS · 连接池 · 故障排查 · Go问答 · 证书轮换 DidResume session ticket ClientSessionCache Go TLS SetSessionTicketKeys
Go TLS 证书轮换后仍看到旧会话,通常不是证书文件没替换,而是旧连接、HTTP Transport 连接池或 session ticket 在复用。本文用 DidResume 区分恢复握手,给出服务端证书指针切换、票据密钥轮换、客户端 Transport 重建和长连接排空的迁移顺序。354 收藏 -
Go bufio.Reader.Peek 的请求长度超过缓冲区时,不会自动扩容,而是返回当前可用字节和 bufio.ErrBufferFull。本文按 n、Reader.Size、Buffered 与错误值拆开说明,并给出先检查固定长度头部、再读取完整内容的处理方式。354 收藏 -
Go regexp 中点号默认不匹配换行,是因为 s 标志默认关闭。本文用最小示例说明 (?s)、局部分组 (?s:...) 与 m 标志的区别,并整理 CRLF 和匹配范围边界。354 收藏 -
Kong 的 Bind 是解析器级依赖登记,Context.Run 的参数是本次命令执行的显式注入。本文用一个可复用的 Go CLI 示例比较两种方式的时机、作用域、接口绑定和选择边界。354 收藏 -
sync.Cond.Wait 没有 context 参数,直接等待可能让取消中的 goroutine 长时间阻塞。本文用 context.AfterFunc 配合同一把 Locker 唤醒等待者,给出 WaitContext 封装、竞态边界和 channel 替代条件。354 收藏 -
recover 只能恢复当前 goroutine 正在展开的 panic。本文用调用栈边界解释父 goroutine 为什么接不住子 goroutine,并给出 worker 包装器、错误回传和资源清理的实现方式。353 收藏 -
Go map 的 range 顺序本来就不保证稳定,测试直接比较遍历结果就会偶发失败。本文用一个小型测试工具拆开集合断言与顺序断言,让 map 测试稳定且不掩盖真实数据错误。353 收藏 -
Go x/text/message 占位参数类型不匹配时,应检查实际翻译模板、参数索引和类型;通过类型封装与输入解析保持各语言模板约定一致。353 收藏 -
Gonum quad.Hermite 面向带 e^(-x²) 权函数的全实数积分。本文解释上下限、节点权重、函数闭包和标准正态期望变量变换之间的关系,帮助排查重复乘权和缩放因子遗漏。353 收藏 -
从一个批量拼接日志的场景出发,验证 bytes.Buffer.Grow 预留容量何时有用、WriteString 如何触发扩容,以及 Reset 为什么只清空长度而不承诺释放底层空间。352 收藏 -
用 Go archive/tar.Reader.Next 遍历归档时,处理未读数据、io.EOF 与非本地路径,避免跳过文件或把危险路径直接写入磁盘。352 收藏 -
go test -race 报告读写冲突时,不要只看两行文件位置;要沿访问栈、创建栈和共享存储边界确认真正被并发访问的变量,再选择锁、channel 或 atomic 修复。352 收藏