《游戏引擎实现原理》7.3 字符串 intern、资源 GUID 与名字表
把引擎里到处流动的名字压成整数:字符串驻留表让同名字符串只存一份、比较变成整数比较,资源 GUID 让文件路径确定性地映射成 64 位标识,名字表把组件类型、属性、系统登记成句柄。给出按字符串查 Map 与按句柄索引数组的 6.6 倍实测差距。
tag
把引擎里到处流动的名字压成整数:字符串驻留表让同名字符串只存一份、比较变成整数比较,资源 GUID 让文件路径确定性地映射成 64 位标识,名字表把组件类型、属性、系统登记成句柄。给出按字符串查 Map 与按句柄索引数组的 6.6 倍实测差距。
系统掌握字符串算法:朴素匹配、KMP 前缀函数、Boyer-Moore、Rabin-Karp 哈希匹配、Manacher 回文、Trie 字典树与 AC 自动机多模式匹配,含复杂度对比与经典题解。
本节处理 TaskAPI 的中文标题:先立住「string 是不可变 UTF-8 字节序列」这个事实,用实测数据说明 len 与字符数为何不同、按字节切会切出非法 UTF-8,再讲 range 如何解码、[]byte 与 []rune 的转换代价,最后用 strings 包与 Builder 写出按字符校验、按字符截断的标题处理函数。
字符串方法全景、切片与不可变、三种格式化的取舍与 f-string 调试写法、encode/decode 的编码错误处理,再到 re 模块的 match/search/fullmatch 区别、分组与命名分组、findall 与 finditer、贪婪与非贪婪、sub 回引,以及预编译缓存与一条日志解析实战。
深入 Go 字符串内存模型与优化技巧,覆盖 string interning、零拷贝解析、strings.Builder 高效构建、bytes 池复用,以及生产环境中的字符串性能调优策略
Lua 模式匹配不是正则表达式,但在多数场景更轻量高效。本文讲解模式匹配的完整语法:字符类、量词、捕获、锚点,以及 string.find/match/gsub/gmatch 的实战用法。