当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang match(Table, Pattern)用法及代码示例


match(Table, Pattern) -> [Match]
类型:
Table = table()
Pattern = match_pattern()
Match = [term()]

将表 Table 中的对象与模式 Pattern 进行匹配。

模式是一个术语,可以包含:

  • 绑定部分(Erlang 术语)
  • '_' 匹配任何 Erlang 术语
  • 模式变量 '$N' ,其中 N =0,1,...

该函数返回一个列表,其中每个匹配对象都有一个元素,其中每个元素都是模式变量绑定的有序列表,例如:

6> ets:match(T, '$1'). % Matches every object in table
[[{rufsen,dog,7}],[{brunte,horse,5}],[{ludde,dog,5}]]
7> ets:match(T, {'_',dog,'$1'}).
[[7],[5]]
8> ets:match(T, {'_',cow,'$1'}).
[]

如果在模式中指定了键,则匹配非常高效。如果不指定key,即是变量或者下划线,则必须全表查找。如果表很大,搜索时间可能会很长。

对于 ordered_set 类型的表,结果的顺序与 first /next 遍历中的顺序相同。

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 match(Table, Pattern) -> [Match]。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。