4
我試圖使用Erlang/ets通過模式匹配接收到的數據來存儲/更新各種信息。下面是代碼無法在接收塊中使用Erlang/ets
start() ->
S = ets:new(test,[]),
register(proc,spawn(fun() -> receive_data(S) end)).
receive_data(S) ->
receive
{see,A} -> ets:insert(S,{cycle,A}) ;
[[f,c],Fcd,Fca,_,_] -> ets:insert(S,{flag_c,Fcd,Fca});
[[b],Bd,Ba,_,_] -> ets:insert(S,{ball,Bd,Ba})
end,
receive_data(S).
這裏A爲週期數,[F,C]爲中心的標誌,並[b]是球和FCD,FCA,BD,巴從播放機的方向和標誌的角度和球。
發送方進程正在發送這些信息。這裏,模式匹配工作正常我通過打印A,Fcd,Fca等等的值來檢查。我相信使用Erlang/ets有問題。
當我運行這段代碼,我得到錯誤這樣
Error in process <0.48.0> with exit value: {badarg,[{ets,insert,[16400,{cycle,7}]},{single,receive_data,1}]
可有人告訴我有什麼不對的代碼,以及如何解決這個問題?
如何使erlang函數公開? – Megha 2014-11-07 11:27:54