-
bytes.Buffer.Available 返回的是底层缓冲区尚未使用的容量,不是当前可读数据长度。本文结合 Len、Cap、Grow 和 AvailableBuffer,说明如何判断追加空间并安全复用缓冲区。
-
Go 1.27 把 go fix 中的 waitgroup analyzer 改名为 waitgroupgo。本文区分命令入口与分析器名称,说明如何用 go tool fix help 和 go fix -diff 确认参数,并判断哪些 WaitGroup 写法适合现代化、哪些场景需要人工复核。
-
Go go-ical 的 TEXT 属性不能把逗号、分号、反斜杠和换行直接拼进线格式。本文说明 SetText、SetTextList、Text、TextList 的选择,以及业务换行、列表分隔和物理折行的边界。
-
Go 1.24 起可以用 os.Root.OpenRoot 把父 Root 内的子目录封装成新的根句柄。本文说明父子 Root 的相对路径边界、ReadFile 用法、关闭顺序与常见错误处理。
-
Go archive/tar 的 Reader.Next 会把作用于文件的 PAX 扩展记录合并到 Header。本文说明怎样读取 PAXRecords、区分普通字段与自定义键,并处理 EOF、坏扩展头和全局头边界。
-
Go 1.27 及更高版本中,go mod tidy 会整理多个 require 块。本文区分块布局、间接标记和模块版本变化,说明如何用 -diff 判断是否只是格式整理。
-
Go VerifyASN1 验签失败,通常要先检查公钥、原始摘要字节和 ASN.1 签名字节是否来自同一套协议约定。本文给出输入契约、编码区别、签名入口选择和排错表。
-
Go os.Root.FS 可以把受限目录适配为 fs.FS,让 fs.ReadDir、fs.ReadFile 等标准库读取接口复用目录边界。本文说明相对路径、Root 生命周期、越界访问和读写职责的取舍。
-
Go 1.24 起可以用 os.Root 把文件操作限制在指定目录树内。本文用 Root.Remove 删除根目录内文件和空目录,并说明相对路径、越界路径、非空目录与 Root 生命周期的错误边界。
-
Go ECDSA Sign 摘要长度报错通常源于原始字节与文本编码混用,或哈希选项不匹配。本文比较三个签名入口,给出 SHA-256 签名验签示例及参数排错表。
-
Go 服务端收到 ClientHello 后,怎样用 tls.Config.GetConfigForClient 按 SNI 或 ALPN 选择配置?本文梳理回调参数、nil 与 error、配置不可变和会话恢复边界。
-
Go 1.27 的 httptest.NewTestServer 默认使用内存网络,适合放进 testing/synctest 的并发测试 bubble。本文说明怎样使用 server.Client 发请求、为什么不应调用 Start、URL 和配置的边界,以及 testing.TB 自动清理与 NewServer loopback 模式的区别。
-
Go 1.25 起可以用 os.Root.Chmod 在受限目录树内修改文件权限。本文给出最小写法,说明相对路径、FileMode、错误分类和跨平台边界。
-
Go Protocompile 的 Compiler.Compile 接收 context.Context。本文用多文件 proto 示例说明怎样把请求取消或超时传入编译流程,用 errors.Is 区分 context.Canceled、context.DeadlineExceeded 与普通编译错误,并处理未完成结果。
-
Go crypto/tls 的 CurvePreferences 类型是 []tls.CurveID,列表顺序不会直接决定协商优先级。本文围绕 MLKEM1024 说明 nil 默认值、显式集合、GODEBUG 与客户端服务端交集的排错边界。