0

使用 Erlang ets,如何匹配部分键?

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

关键是{un_known,{<<"knonw_1">>,<<"knonw_2">>}

{<<"knonw_1">>,<<"knonw_2">>}如果我只知道这可能,我怎么能从表中匹配?

4

1 回答 1

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]}]
于 2016-06-24T21:13:45.037 回答