Go语言技术文章
-
Go oggvorbis.Reader.Read 返回的是按声道交错排列的 float32 样本值。本文用双声道示例说明如何按 L0、R0、L1、R1 拆分左右声道,并处理短读、EOF、声道数和完整帧边界。438 收藏 -
Go 的 RawStdEncoding 是使用标准 Base64 字母表但省略等号补位的编码器。本文说明它与 StdEncoding、RawURLEncoding 的区别,给出无填充文本的编码、解码、错误处理和边界选择。438 收藏 -
默认 bufio.ScanLines 能识别 LF 与 CRLF,却不会把单独 CR 当作行结束。本文实现一个兼容混合行尾的 SplitFunc,并说明缓冲区末尾、atEOF、长 token 与错误检查的处理方式。438 收藏 -
解释 embed.FS 与 io/fs 的逻辑路径规则,说明 Windows 也必须使用斜杠,并给出用 path.Join、ReadDir、Open 和 ReadFile 读取嵌入资源的跨平台写法。438 收藏 -
Python tomllib 只负责读取 TOML,写回时应按需求选择 tomli-w 或 TOML Kit:前者从字典重建配置,后者保留注释与排版。本文补充临时文件原子替换和回归检查方法。438 收藏 -
runtime.Goexit 结束的是当前 goroutine,不会返回调用方,但已经登记的 defer 仍会执行;它不是 panic,recover 也无法捕获。本文说明 main goroutine 的特殊结果,并给出 return、error、context 和 channel 的替代选择。438 收藏 -
httptest.NewTLSServer 使用自签名测试证书,直接交给默认 http.Client 往往会出现 x509 unknown authority。本文说明怎样复用 ts.Client(),怎样在保留证书信任的前提下增加超时或 Transport 配置,以及完全自建 Transport 时如何补回测试证书。437 收藏 -
从 Magisk 官方 GitHub Releases 和 stable.json 入手,说明版本标签、发布状态、versionCode 与下载字段如何交叉核对,并提示刷写、权限和设备兼容风险。437 收藏 -
Go modules 下载依赖超时时,先区分代理、版本库直连和校验服务,再按回退规则切换 GOPROXY,避免把关闭校验当成万能方案。437 收藏 -
Go net.Dialer 通过 LocalAddr 指定客户端拨号使用的本地地址。本文用 TCPAddr 说明本地 IP、固定端口、端口 0 与 tcp4/tcp6 地址族的选择边界。437 收藏 -
Go 读取稀疏 tar 条目时,Header.Size 表示逻辑文件大小,稀疏空洞会由 Reader 以 NUL 字节呈现。本文区分逻辑长度与归档实际载荷,说明如何流式读取、设置大小上限,并避免手工计算下一个条目的偏移。437 收藏 -
Go读取多段PEM证书应循环pem.Decode并推进rest,再逐块调用x509.ParseCertificate。本文提供限量读取示例,说明混合块、DER错误、顺序保留和解析与信任验证的区别。437 收藏 -
Go 的 FindStringSubmatchIndex 返回 -1 时,通常表示对应可选捕获组没有匹配,而不是整体正则失败。本文拆解 nil、-1,-1、空匹配和字节偏移的区别,并给出安全读取索引的写法。437 收藏 -
Go HTTP 请求变慢时,httptrace.ClientTrace 可以把 DNS、连接、TLS、写请求和首字节等阶段拆开记录。本文给出标准库用法、复用连接判断、回调缺失分析和超时排查边界。437 收藏 -
MySQL JSON_TABLE 使用 NESTED PATH 展开空数组时,父级记录仍可能保留一行,嵌套列显示为 NULL。本文解释补位行的来源,并用 EXISTS PATH、外层 WHERE 和 ON EMPTY 区分真实明细、空数组与字段缺失。437 收藏