當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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]。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。