与Erlang ets,如何匹配部分密钥?
例如,ets:insert(time_tb,{ {un_known,{<<"knonw_1">>,<<"knonw_2">>} },[data]}).
密钥是{un_known,{<<"knonw_1">>,<<"knonw_2">>}
如果我只知道{<<"knonw_1">>,<<"knonw_2">>}
这可能,我怎样才能与表匹配?
答案 0 :(得分:1)
如果我理解正确,没有必要使用功能匹配。您可以使用函数ets:select和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]}]