抛开泛型的复杂情况,单一类型单纯数值的pattern match由于是有界的,所有case可以放入数值范围表格来进行优化,而这种用法是最常见的方式。
【 在 philbloo 的大作中提到: 】
: rust 或者其它主流语言不会用 smt solver 来编译 pattern match ,因为这个依赖太强,而且 smt solver 也很不稳定。
: 我只是想说从静态分析和优化的角度来看, if-else 远比 pattern match 容易,因为 if-else 就是生成两个新的 basic block ,然后加几条 phi ,没了,之后的优化都是经典 ssa 分析,跟其它 control flow 没有区别。而 pattern match 分析,等同于解一组布尔值方程,算法不好的话很容易死在只有几条方程的情况下。
:
: ...................
--
FROM 222.212.168.*