2017-04-02 46 views
1

我已經開始學習Erlang了,所以我是功能性編程的小菜鳥。獲取和設置Erlang地圖的方法

我認爲我不能有「全局變量」,我可以在同一模塊的不同進程中使用。因此,我認爲我可以使用地圖來存儲數據(計數器,狀態......)並管理/更新它。

我的問題是:是否有任何方法可以獲取/設置方法(類似於我們可以在Java,C#中找到的方法)來訪問地圖數據而不用寫入文件?或者有另一種方法可以在全球範圍內使用這些數據

謝謝!

回答

3

剛纔忘OOP。
在這種方法中,其他功能程序員不能理解你的代碼,而且維護太困難了。
如果要將數據保存在一個進程中,最好的方法是學習Generic Server的實現,並使用您的數據而不是您的gen_server的狀態。
如果你想保留一些數據並將它們分享給一些進程:
在一個Erlang節點中使用ETS (Erlang Term Storage)DETS (Disk Erlang Term Storage)
在節點集羣中使用Mnesia DB

1

我想,我不能有「全局變量」,我可以在同一模塊的不同 工藝使用。因此,我認爲 我可以使用地圖來存儲數據(計數器,狀態...)和 管理/更新它。

然後映射將不得不被分配給一些全局的進程間變量,並且你回到了同樣的問題。

我的問題是:有沒有辦法做到get/set方法(類似於 方法,我們可以在Java中找到...

要你指的是什麼方法

你可以使用一個數據庫,如mnesia,存儲數據,不同的進程可以訪問。