> Erlang中文手册 > is_compiled_ms/1 检测一个 Erlang 数据是否是一个有效已编译的匹配规范

ets:is_compiled_ms/1

检测一个 Erlang 数据是否是一个有效已编译的匹配规范

用法:

is_compiled_ms(Term) -> boolean()

这个函数用来检测一个 Erlang 数据 Term 是否是一个有效的已编译的匹配规范。编译过的匹配规范是一个不透明的数据类型,即它不可以在 Erlang 节点间发送或存储在磁盘上。任何尝试创建一个已编译过的匹配规范的外部表示形式将导致产生一个空的二进制(>)。

例如下面表达式将输出 true:

Term = ets:match_spec_compile([{'_', [], [true]}]),
ets:is_compiled_ms(Term).

例如下面表达式将输出 false:

MS = ets:match_spec_compile([{'_', [], [true]}]),
Broken = binary_to_term(term_to_binary(MS)),
ets:is_compiled_ms(Broken).

因为变量 Broken 将包含一个已编译过被转为其外部表现形式的匹配规范。