主要观点:介绍如何使用有限自动机匹配和比较数字,需将数字转换为具有特定词法属性的字符串,希望有至少 12 人对数字表示与有限自动机的交集感兴趣。Quamina 是基于 Go 语言的库,受 AWS Event Ruler 启发,可编译模式并匹配事件。之前 Quamina 不知“20”“20.0”等是相同数量,现通过将数字规范化为固定大小字符串来解决,需满足数字在 -/+5×10⁹ 之间且小数部分不超过 5 位等约束。同时探讨了可改进的方式,如用其他方式表示二进制等,Ruler 已实现 6 位小数,而 Go 无 BigDecimal 较难实现,Quamina 不愿引入依赖。代码中对数字转换的约束和转换代码不便宜,需注意在特定条件下进行转换,Quamina 有自己的 JSON 解析器可辅助判断。结论是 Quamina 现在能处理数字,匹配 14 位 Q 数比“20”稍慢但正确性更重要。
关键信息:
- Quamina 库及与 AWS Event Ruler 的关系。
- 数字规范化为 14 位 hex 字符串的过程及约束。
- 可改进方式及与 Ruler 的对比。
- JSON 解析器在数字处理中的作用。
重要细节:
- Quamina 处理事件速度快且与模式数量弱相关。
- 不同数字示例及其规范化结果。
- 对代码优化及性能影响的讨论。
- 关于“Q 数”的命名及相关讨论。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。