Erlang 宏

2022-07-07 15:45 更新

Erlang宏

在 messager 系統(tǒng)添加的另外一種東西是宏。在 mess_config.hrl 文件中包含如下的定義:

%%% Configure the location of the server node,
-define(server_node, messenger@super).

這個頭文件被包括到了 mess_server.erl 文件中:

-include("mess_config.hrl").

這樣,在 mess_server.erl 中出現(xiàn)的每個 server_node 都被替換為 messenger@super。

宏還被用于生成服務(wù)端進程:

spawn(?MODULE, server, [])

這是一個標(biāo)準(zhǔn)宏(也就是說,這是一個系統(tǒng)定義的宏而不是用戶自定義的宏)。?MODULE 宏總是被替換為當(dāng)前模塊名(也就是在文件開始的部分的 -module 定義的名稱)。宏有許多的高級用法,作為參數(shù)只是其中之一。

Messager 系統(tǒng)中的三個 Erlang(.erl)文件被分布編譯成三個獨立的目標(biāo)代碼文件(.beam)中。當(dāng)執(zhí)行過程中引用到這些代碼時,Erlang 系統(tǒng)會將它們加載并鏈接到系統(tǒng)中。在本例中,我們把它們?nèi)糠诺疆?dāng)前工作目錄下(即你執(zhí)行 "cd" 命令后所在的目錄)。我們也可以將這些文件放到其它目錄下。

在這個 messager 例子中,我們沒有對發(fā)送消息的內(nèi)容做出任何假設(shè)和限制。這些消息可以是任何合法的 Erlang 項。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號