Go语言技术文章
-
用一个小型 Go 工具说明 bytes.CutSuffix 如何处理固定后缀、如何判断 found,以及空后缀、未匹配和底层切片共享的边界。415 收藏 -
Go bytes.CutPrefix 用 after 和 found 同时表达去掉固定前缀后的切片与是否命中。本文说明未命中、空前缀、底层数组共享及旧版本兼容边界。405 收藏 -
Go 1.25 起可以用 os.Root.Chtimes 在受限目录树内更新文件的访问时间和修改时间。本文说明两个时间参数、零值保留、精度、权限与平台边界。276 收藏 -
Go 1.25 起可以用 os.Root.MkdirAll 在受限目录树内创建多级目录。本文说明 OpenRoot、相对路径、FileMode 权限参数、重复创建和迁移边界。215 收藏 -
Go bytes.Buffer.Grow 只预留后续写入空间,不会增加 Len。本文区分 Len、Cap 与 Grow 的语义,并用拼接示例说明如何预分配容量、复用 Buffer 和处理参数边界。119 收藏 -
Go 模块联调时,可用 go mod edit -replace 将已 require 的依赖临时指向本地目录。本文说明本地路径、module 路径、版本范围、验证命令和清理步骤,避免替换不生效或把本地配置提交到仓库。238 收藏 -
Go 1.25 引入的 os.Root.Lchown 可以在受限目录内修改符号链接自身的数字 uid/gid。本文区分 Lchown 与 Chown 的作用对象,给出错误处理和跨平台排查要点。426 收藏 -
Go 1.26 的 EncryptOAEPWithOptions 可以分别设置 OAEP 主哈希和 MGF1 哈希。本文按 Hash、MGFHash、label 与 RSA 模长四项参数,说明 Go 与 Java、OpenSSL 等对端如何建立可排查的 RSA-OAEP 互操作契约。408 收藏 -
Go net/http Request.MultipartReader 适合把 multipart/form-data 请求按 Part 流式读取,避免 ParseMultipartForm 为大文件建立完整表单结构。本文说明文件与普通字段的分流、整体请求上限、单文件超限判断和错误清理。282 收藏 -
Go x509 证书链验证通过信任检查后,仍可能被中间 CA 的 NameConstraints 拒绝。本文说明 PermittedDNSDomains、ExcludedDNSDomains、叶子证书 SAN 与 VerifyOptions 的关系,并给出错误定位顺序。162 收藏 -
Go archive/zip 遇到非内置压缩方法时,可以在 Reader 上注册自定义 Decompressor。本文说明方法编号映射、io.ReadCloser 返回值、File.Open 选择解压器以及校验和和并发资源边界。359 收藏 -
本文用 Go net/http 说明 Transport.CloseIdleConnections 只关闭 keep-alive 空闲连接,区分 Response.Body、活动连接和请求取消,并给出 Client、Transport 与连接池参数的排查方法。397 收藏 -
使用 go/types 做 Go 静态分析时,Info.Types 只能回答表达式类型。本文用原创示例说明如何初始化 Info.Selections,找到嵌入字段最终对应的 Obj,并用 Index、Recv、Indirect 解释选择路径。452 收藏 -
Go jsontext Decoder 的 SkipValue 适合在流式读取 JSON 时跳过不需要处理的大对象、数组或标量,避免 ReadValue 为整个值保留内存。本文从字段分支、嵌套边界和错误处理说明如何使用。276 收藏 -
Go 集成 cel-go 时,int 与 double 混合表达式可能在 Compile 阶段失败。本文按类型检查、算术运算、跨类型比较和显式转换拆开排查,给出可落地的修复选择。108 收藏