Erlang ETS比赛

时间:2016-06-24 19:58:59

标签: erlang match ets

与Erlang ets,如何匹配部分密钥?

例如,ets:insert(time_tb,{ {un_known,{<<"knonw_1">>,<<"knonw_2">>} },[data]}).

密钥是{un_known,{<<"knonw_1">>,<<"knonw_2">>}

如果我只知道{<<"knonw_1">>,<<"knonw_2">>}这可能,我怎样才能与表匹配?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,没有必要使用功能匹配。您可以使用函数ets:selectest:fun2ms执行此操作以简化匹配规范。

R=ets:fun2ms(fun(Data={{_,T},_}) when T =:= {<<"knonw_1">>,<<"knonw_2">>}->Data end).
ets:select(time_tb,R).

并获得:

[{{un_known,{<<"knonw_1">>,<<"knonw_2">>}},[data]}]