ets:match_spec_compile/1
把一个匹配规范编译为它的内部表示形式
用法:
match_spec_compile(MatchSpec) -> CompiledMatchSpec
这个函数把一个匹配规范 MatchSpec 转换为一个可用于被 ets:match_spec_run/2 在后续调用的内部表示形式。转换后的内部形式"不透明"的一个数据,它并不能转回为其原来的外部数据格式,并且完好无损的转回(这意味着它不可以发送到另一节点的进程上,并且仍然是一个有效的已编译的匹配规范,或存储在磁盘上也是不行)。
可以使用 ets:is_compiled_ms/1 来检测一个匹配规范是否有效。
MatchSpec = ets:fun2ms(fun({M, N}) when N > 3 -> M end), ets:match_spec_compile(MatchSpec).
如果匹配规范 MatchSpec 不能被编译(并不是一个有效的匹配规范),将会抛出一个 badarg 的错误。
MatchSpec = "not_a_valid_ match_spec", ets:match_spec_compile(MatchSpec).