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