Erlang ETS 比赛

Erlang ETS Match

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

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

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

如果我只知道 {<<"knonw_1">>,<<"knonw_2">>} 这可能,我如何从 table 匹配?

如果我没理解错的话,没有必要使用函数匹配。您可以使用函数 ets:select and est: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]}]