Go教程技术文章
-
通过配置赋值案例说明 Participle 状态词法器如何区分引号内外规则、保留文本与转义片段,并用结构体语法约束闭引号及处理字符串值。351 收藏 -
Go time.Time 写入 JSON 时,先用 In 固定业务时区,再按 RFC3339 或字段级自定义 MarshalJSON 输出稳定格式。351 收藏 -
Go 项目同时存在 go.mod、vendor 和 CI 构建脚本时,使用 -mod=vendor、-mod=mod 与 -mod=readonly 可以明确切换依赖来源。本文说明自动模式、同步 vendor、CI 固定参数和发布前检查清单。351 收藏 -
用 Go execution trace 采集短窗口运行时事件,结合 go tool trace 观察 goroutine 调度、阻塞、系统调用与 GC,并明确它和 pprof 的分工。351 收藏 -
Go transform 的 Span 可识别无需改写的字节前缀。本文用 width.Fold 说明前缀保留、ErrEndOfSpan、缓冲区处理和状态延续,并解释完整输入与流式输入的区别。351 收藏 -
用atomic.Pointer构建可复用的只读配置容器,演示完整构造、原子替换和一次Load读取,并说明map拷贝、多写者及旧快照生命周期。351 收藏 -
Go regexp 使用 RE2 语法并保证匹配时间随输入规模线性增长,因此不需要给传统回溯引擎配置超时。本文用输入字节预算、模式编译边界和 FindAll 结果上限控制正则相关资源消耗。350 收藏 -
Go flag 的多子命令程序可以为每个子命令创建独立 FlagSet,并分别设置 Usage 与输出流。本文用 serve、config 示例说明帮助文本隔离、解析错误处理和验证方法。350 收藏 -
用 Go unsafe.StringData 读取字符串底层字节时,关键不是把 string 强行变成可写切片,而是保留原字符串所有者并封装只读访问。本文说明零拷贝视图的生命周期、空值和越界边界,以及哪些场景应该继续使用普通转换。350 收藏 -
Go bytes.FieldsFuncSeq 接收自定义 rune 判断函数,返回按规则切出的非空字节子切片迭代器。本文说明自定义分隔规则、与 FieldsFunc 的关系、提前停止消费以及输入切片别名边界。350 收藏 -
Go filepath.FromSlash 适合把配置、归档或协议中的斜杠路径转换为目标操作系统的文件路径。本文说明输入边界、与 ToSlash 和 io/fs 的分工,以及不能替代的清理和安全检查。350 收藏 -
介绍 Gonum quad.Hermite 的积分节点与权重用法,说明全实数边界、平方指数权重、quad.Fixed 参数、节点切片配对和并发回调边界。350 收藏 -
Go weak.Pointer 不会阻止对象被垃圾回收,适合做可丢失的二级缓存索引。本文用 weak.Make、Value、runtime.KeepAlive 和回源逻辑说明如何实现可失效引用,以及它不能替代业务主存储的边界。350 收藏 -
Golang · Go教程 | 2星期前 | 并发 · 缓存 · 性能优化 · 正则表达式 · Go教程 · 正则表达式 Go 并发缓存 MustCompile regexp.Compile Regexp缓存
Go 中固定正则应在初始化阶段编译一次,动态正则则按 pattern 缓存 *regexp.Regexp。本文从重复 Compile 的现象出发,说明 MustCompile、并发安全 map、错误返回和高基数 key 的边界。349 收藏 -
Go 1.24 新增的 time.Time.AppendText 会把时间按带子秒精度的 RFC3339 格式追加到已有字节切片。本文说明返回值、错误处理、时区边界和旧版本替代方式。349 收藏