> Erlang中文手册 > select_delete/2 根据匹配模式删除表里的对象数据

ets:select_delete/2

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

用法:

select_delete(Tab, MatchSpec) -> NumDeleted

使用一个匹配规范 MatchSpec 来匹配表 Tab 里的对象数据。如果对一条对象数据使用匹配规范时返回 true,并且该条对象数据会从表里移除。对于任何被匹配规范(match_spec)所匹配到的对象数据会被作为返回值而保留下来。该函数比 ets:match_delete/2 还更通用(ets:match_delete/2 的代码实现里还调用到 ets:select_delete/2 方法)。

函数最后会返回一个实际在表里被删除的对象的数量值。

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