> Erlang中文手册 > match/3 根据匹配模式匹配表里的对象数据

ets:match/3

根据匹配模式匹配表里的对象数据

用法:

match(Tab, Pattern, Limit) -> {[Match], Continuation} | `$end_of_table`

跟 ets:match/2 一样,都是根据匹配模式 Pattern 匹配表 Tab 里的对象数据,但是 ets:match/3 只返回 Limit 条的匹配数据。返回结果里还同时返回变量 Continuation,这可作为下一次调用 ets:match/1 方法的参数来获取下一批的匹配数据,这比使用 ets:first/1 和 ets:next/2 方法遍历获取表里的对象数据会更快,更有效率。

如果表为空,则返回 '$end_of_table'。

Tab = ets:new(ets_tab, [named_table, bag]),
ets:insert(Tab, [{rufsen, dog, 7}, {brunte, horse, 5}, {ludde, dog, 5}]),
{Match, _Continuation} = ets:match(Tab, '$1', 2),
Match.
Tab = ets:new(ets_tab, [named_table, bag]),
ets:insert(Tab, [{rufsen, dog, 7}, {brunte, horse, 5}, {ludde, dog, 5}]),
ets:match(Tab, {'_', dog, '$1'}, 1).