elang ets テーブルを単純なキャッシュとして使用します。テーブルをスキャンして期限切れの要素を削除するプロセスを使用したい (複数)。
ets:foldl を使用
expire_table_example() ->
Tab = ets:new(ets_tab, [named_table, set]),
ets:insert(Tab, [{a, 1}, {b, 2}, {c, 3}, {d, 4}, {e, 5},{f,7}]),
Tab1 = ets:foldl(fun({Key, Val}, Acc) ->
if
(Val > 3) -> [{Key, Val} | Acc];
true -> Acc
end
end, Tab, Tab),
io:format("end ~p ~n", [Tab1]).
私は得た
[{f,7},{e,5},{d,4}|ets_tab] %% the ets_tab is NOT expected.
これを修正するにはどうすればよいですか?
他のAPIはこれをよりうまく行うでしょうか?