Go语言技术文章
-
go-mp3 的 Decoder.Length 统计的是解码流总字节数,不是 MP3 压缩文件大小。本文说明可寻址输入中的 Length、非 io.Seeker 输入的 -1、Read 累计方式,以及 16 位小端双声道输出的单位边界。406 收藏 -
Go regexp.Regexp.LiteralPrefix 可以提取所有匹配都必须以它开头的字面字符串,并用 complete 区分完整正则与前缀过滤条件。本文用固定开头、字符类、分支和 HasPrefix 预过滤示例说明它的边界。406 收藏 -
Golang · Go问答 | 1星期前 | 标准库 · TCP · Go问答 · Go keepalive net.TCPConn KeepAliveConfig SetKeepAlive SetKeepAlivePeriod TCP排障
排查 Go net.TCPConn 的 KeepAlive 参数未生效时,先区分开关、空闲时间、探测间隔与应用层超时,再核对 TCPConn 类型、API 返回错误、Dialer 或 ListenConfig 的配置来源和操作系统边界,并给出旧版本与 Go 1.23+ 的正确写法。406 收藏 -
只修改 RawQuery 不会自动改变 Path。本文通过保留 RawPath、重建 URL 丢失编码提示和路径二次编码三个对照,解释路径变化的来源,并给出保留解析错误的查询参数修改函数。406 收藏 -
Golang · Go问答 | 4天前 | 单元测试 · Cookie · Go问答 · 兼容性 · cookie Go net/http/cookiejar Options.PublicSuffixList 内网测试域名
Go cookiejar 遇到 api.dev.test、web.dev.test 这类内网测试域名时,可以注入只服务于测试的 PublicSuffixList。本文解释它对 Domain Cookie 的影响、如何实现并发安全的测试替身,以及为什么不能把 nil 配置带到生产环境。406 收藏 -
Go 1.27 改变了 Darwin 与 Windows 上 x509.SystemCertPool 对 SSL_CERT_FILE、SSL_CERT_DIR 的处理。本文按证书来源、TLS 配置、GODEBUG 回退和跨平台回归四个边界,说明旧项目该怎么排查。405 收藏 -
Go 1.26 为 runtime/metrics 增加了更细的调度指标。本文用一段紧凑的采样代码区分 runnable、waiting、running、GOMAXPROCS、运行时线程数与创建总量,说明哪些组合能提示排队或阻塞,哪些结论不能只靠一个数字得出。405 收藏 -
Go 反射里 CanSet 为 false,通常不是 Set 本身的问题,而是 Value 不可寻址、来自未导出字段或少做了一次 Elem。本文用最小示例和诊断清单定位三类来源。405 收藏 -
Go 处理 URL 参数中的无填充 base64 时,关键是按字母表和填充约定选择 RawURLEncoding,而不是把所有输入都交给 StdEncoding。本文给出判断表、解码代码和兼容排错方法。405 收藏 -
解释 Go slog ReplaceAttr 中 groups 为空、零值 Attr、空名称 Group 内联的差别,并给出按分组路径脱敏、删除内置字段和避免回调递归的安全写法。405 收藏 -
SJSON 的 SetRaw 需要一个非空路径,空路径会返回 path cannot be empty,因此它不适合直接替换完整根 JSON。本文区分根文档替换、根对象字段写入和嵌套字段更新,并给出 SetRawBytes 的选择方式。405 收藏 -
io/fs 使用统一斜杠路径,而本地文件系统使用操作系统分隔符。本文用 filepath.Localize 完成转换,说明 ValidPath 前置条件、Windows 兼容错误与文件操作边界。405 收藏 -
Go bytes.CutPrefix 用 after 和 found 同时表达去掉固定前缀后的切片与是否命中。本文说明未命中、空前缀、底层数组共享及旧版本兼容边界。405 收藏 -
Go DNS 解析在本机正常、容器里失败,通常不是 Go 随机改变了结果,而是两侧的 resolv.conf、hosts、网络命名空间或解析器路径不同。本文给出一套从输入配置到 net.Resolver 的排查与修复路线。405 收藏 -
Go 1.25 的 CrossOriginProtection 可以拦截跨源写请求。本文说明如何用 SetDenyHandler 统一返回 JSON 拒绝响应,并厘清安全方法、Origin、Sec-Fetch-Site 与日志边界。405 收藏