Go语言技术文章
-
Go 类型断言如何限定接口范围?本文说明具体类型断言与接口类型断言的区别,演示 comma-ok、安全探测、最小接口和 type switch 的取舍。419 收藏 -
slices.DeleteFunc 会原地压缩切片,并清零新长度之后的尾部元素,从而断开被删除元素对对象的引用。本文用指针切片示例说明它的边界。419 收藏 -
Golang · Go教程 | 2个月前 | 标准库 · regexp · 字符串处理 · Go教程 · 命名捕获组 正则替换 Go regexp ExpandString regexp.Expand FindSubmatchIndex
用 Go regexp 的 Expand 和 FindSubmatchIndex 把匹配文本转换成结构化输出,覆盖命名与数字引用、字面美元符号、批量追加和未匹配分组边界。419 收藏 -
Go 1.27 支持方法声明自有类型参数。本文用 Box[T] 和 Map[U] 完成容器链式转换,并说明类型推断、接口与旧版本兼容边界。419 收藏 -
go-toml 将不携带时区关系的本地日期、时间和日期时间,与带偏移的时间点分开处理。本文用 TOML 字面量、LocalDateTime、time.Time 和 AsTime(zone) 说明两者的语义边界与选型方法。419 收藏 -
用 slog.Handler 的 ReplaceAttr 把日志脱敏集中到处理器出口,覆盖顶层字段、分组字段、删除属性和测试验证边界。419 收藏 -
Go netip.Prefix Overlaps 用来判断两个 CIDR 网段是否存在共同 IP。本文从 ParsePrefix 和 Masked 开始,说明 IPv4、IPv6、零值前缀、非法输入与 Contains 的区别,并给出可复用的 Go 封装。419 收藏 -
Go 里传入 0644 却得到不同权限,通常要同时检查创建时的 umask 和文件是否已经存在。本文给出一套可复用的判断顺序与修正代码。419 收藏 -
Go 的 os.Rename 在目标文件已存在时按文档可以替换普通文件,但 Windows 仍可能因目标被占用、共享模式、只读属性、目录目标或非原子语义失败。本文用四个错误信号拆分原因,并给出同目录临时文件、关闭句柄和避免先删后换的可靠写法。419 收藏 -
Golang · Go问答 | 3星期前 | 标准库 · go · database/sql · Go database/sql NamedValue driver.NamedValueChecker ErrSkip ErrRemoveArgument
Go 数据库驱动可以通过 NamedValueChecker 接收自定义参数类型。本文用一个最小驱动侧示例讲清 Conn 与 Stmt 的检查顺序、值转换、ErrSkip 和 ErrRemoveArgument 的边界,帮助排查参数不生效或数量不匹配。419 收藏 -
以资源清单页说明embed.FS如何作为ParseFS模板来源,区分嵌入路径、解析范围与define模板名,并处理片段未定义、工作目录和重新构建问题。419 收藏 -
用 CEL-Go 的 EstimateCost 做静态成本估算,再用 CostTracking 与 CostLimit 限制运行期求值预算;同时区分超限、业务错误和扩展函数成本。419 收藏 -
Go Ants 开启 WithPreAlloc(true) 后调用 Tune,Cap 可能保持初始化值。本文从源码条件解释预分配队列与动态调优的边界,并给出固定容量、动态 Tune 和重建池的选择方法。419 收藏 -
gojq 把 Run 的查询输入和 input/inputs 读取的额外输入流分开设计。本文用 WithInputIter 与 gojq.NewIter 演示如何提供输入迭代器,并说明 Iter.Next 的结束、错误和自定义数据源处理方式。419 收藏 -
Go 定时轮询要立即执行一次,不能等待 time.NewTicker 的第一拍。把任务抽成函数先直接调用,再用 ticker.C 驱动后续周期,并用 context 控制退出。419 收藏