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


erlang select(Tab, Spec)用法及代码示例


select(Tab, Spec) -> [Match]
select(Tab, Spec, LockKind) -> [Match]
类型:
Tab = table()
Spec = ets:match_spec()
Match = term()
LockKind = lock_kind()

匹配表中的对象Tab用一个match_spec如中所述集:选择/3。可选锁read或者write可以作为第三个参数给出。默认为read。返回值取决于MatchSpec.

请注意,为了获得最佳性能,应在同一事务中对该表执行任何修改操作之前使用select。也就是说,不要在 select 之前使用 writedelete

最简单的形式,match_spec 如下所示:

  • MatchSpec = [MatchFunction]
  • MatchFunction = {MatchHead, [Guard], [Result]}
  • MatchHead = tuple() | record()
  • Guard = {"Guardtest name", ...}
  • Result = "Term construct"

如需完整说明select,见ERTS用户指南和埃特斯STDLIB 中的手册页。

例如,要在表 Tab 中查找所有 30 岁以上男性的姓名:

MatchHead = #person{name='$1', sex=male, age='$2', _='_'},
Guard = {'>', '$2', 30},
Result = '$1',
mnesia:select(Tab,[{MatchHead, [Guard], [Result]}]),

相关用法


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