Go语言技术文章
-
用 Go crypto/rand.Int 生成安全随机下标时,上界必须是正数且结果不包含上界;文章用最小代码说明无偏分布、big.Int 转换和 Reader 错误处理边界。269 收藏 -
用同一个 httptest 服务验证 Go RoundTripper 总耗时与 httptrace.ClientTrace 分阶段耗时的差别,给出按排障目标选工具的边界。269 收藏 -
用 Go text/template/parse 运行同一份示例,检查 ActionNode、Pipeline 节点和语法错误位置,给模板静态检查留下可核对的证据。269 收藏 -
Go map 读取不存在的键不会报错,而是返回元素类型的零值。本文用 comma-ok 语法区分键不存在与真实零值,并说明 nil map 的读取和写入边界。269 收藏 -
panicreturn 不是 Go 内置函数名。遇到 panic 后 recover 为空、程序继续崩溃或 error 没有返回时,应从同一 goroutine、defer 直接调用和命名返回值三个位置排查。269 收藏 -
解释 Go sql.Conn.Raw 中 driverConn 的借用生命周期,说明为什么不能跨回调保存底层驱动连接,并给出同步调用、结果复制与 ErrBadConn 处理的安全模板。269 收藏 -
讲清 Go 使用 klauspost/compress/zstd 解压连续多帧数据时的四层内存边界:压缩输入、窗口、并发缓冲和累计输出,并给出流式硬上限实现与边界测试清单。269 收藏 -
Go 1.27 的 encoding/json/v2 可以通过 jsontext.Decoder 和 UnmarshalDecode 逐个读取连续的顶层 JSON 值。本文用完整 Go 示例说明 io.EOF 收尾、语法与语义错误边界,并比较单值 Unmarshal、v1 Decoder 与 JSON 数组的选择。269 收藏 -
Go 的 iter.Seq 是由 yield 返回值驱动停止的。本文解释 range 提前 break、iter.Pull 的 stop,以及自建异步生产者为何会继续运行,并给出可复查的资源回收方案。269 收藏 -
Go exec.Cmd 应从命令环境副本追加受控覆盖,避免显式 Env 丢失继承项。本文说明 nil 与空切片、Dir 和 PWD、空值与删除,并给出完整示例及敏感变量继承的限制。269 收藏 -
用 fs.ValidPath 校验虚拟路径,再通过 path.Join 把调用方名称映射到带前缀的底层 FS,并说明 fs.Sub、错误路径和安全边界的取舍。269 收藏 -
围绕 os.ReadDir、File.ReadDir 和 io/fs.ReadDirFS 讲清目录条目的排序、分页、io.EOF 与 DirEntry 信息读取边界,帮助 Go 程序按场景选择接口。269 收藏 -
Go 泛型可以用 comparable 约束元素、用 map 记录已见值,在不改变输入顺序的情况下完成全局切片去重;元素不可比较时再通过 key 函数提取业务键。269 收藏 -
Go regexp.Regexp.NumSubexp 统计的是正则表达式中的捕获组数量,不包含完整匹配本身。本文用普通组、命名组和非捕获组说明结果下标怎样对应。269 收藏 -
Go Transport 配置看似未生效,需区分旧实例归属、连接复用和配置作用阶段。结合客户端工厂与顺序切换示例,说明不可变配置、响应体排空、闲置连接回收及热更新的失败边界。269 收藏