鍍金池/ 教程/ 區(qū)塊鏈/ 第 二 章 結(jié)構(gòu)和Erlang術(shù)語
第 三 章 軟件工程的原則
第 4 章 錯誤處理機制
9 最常見的錯誤
6 幾種 Erlang 的特殊慣例
第 5 章 進程、服務(wù)及消息
8 文檔
7 特殊的語法規(guī)范
使用 Erlang 編程開發(fā)——編程規(guī)則及規(guī)范
第 二 章 結(jié)構(gòu)和Erlang術(shù)語
10 必備文檔

第 二 章 結(jié)構(gòu)和Erlang術(shù)語

Erlang 系統(tǒng)由各種模塊(module)組成。模塊則由函數(shù)(function)和屬性(attribute)構(gòu)成。函數(shù)或者只能在某個模塊范圍內(nèi)中被調(diào)用,或者是可以被導(dǎo)出(exported)的函數(shù),例如可以被其他模塊中的其他函數(shù)所調(diào)用。屬性名稱必須帶有 - 前綴,且放置于模塊的開頭。

在利用 Erlang 設(shè)計的系統(tǒng)中,任務(wù)是通過進程(process)來完成的。進程是一種能夠在很多模塊中使用函數(shù)的任務(wù)。進程間通過傳遞消息(sending message)來進行通信。進程不僅能夠接收(receive)發(fā)送給它們的消息,而且還能確定準備接收何種消息。當(dāng)接收進程還未準備好接收消息時,消息會自動進入排隊等候狀態(tài)。

進程能夠通過創(chuàng)建一個鏈接來監(jiān)控其他進程是否存在。當(dāng)某一進程終止時,它會自動向其所鏈接的進程發(fā)送退出信號(exit signal)。默認情況下,當(dāng)進程接收到退出信號時,就會終止并將該信號傳播給它所鏈接的進程。通過捕獲退出信號(trapping exits),進程可以改變這一默認行為,從而導(dǎo)致所有發(fā)送給一個進程的退出信號都轉(zhuǎn)變成消息。

純函數(shù)(pure function):當(dāng)參數(shù)相同時,函數(shù)返回值也相同,與函數(shù)調(diào)用上下文無關(guān)。這一特點與數(shù)學(xué)上的函數(shù)比較一致。不純的函數(shù),在 Erlang 中被稱之為具有副作用。

副作用通常發(fā)生在以下這些情況中:函數(shù)(a)發(fā)送消息;(b)接收消息;(c)調(diào)用 exit 命令;(d)調(diào)用 BIF1 從而改變進程環(huán)境或操作模式(比如:get/1put/2,erase/1,process_flag/2,等等)

1. Erlang 內(nèi)建函數(shù),Built-In Function 的縮寫。

警告:本文檔中的一些范例代碼效率并不理想,希望你能加以改進。

上一篇:9 最常見的錯誤下一篇:8 文檔