W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在 messager 系統(tǒng)添加的另外一種東西是宏。在 mess_config.hrl 文件中包含如下的定義:
%%% Configure the location of the server node,
-define(server_node, messenger@super).
這個(gè)頭文件被包括到了 mess_server.erl 文件中:
-include("mess_config.hrl").
這樣,在 mess_server.erl 中出現(xiàn)的每個(gè) server_node 都被替換為 messenger@super。
宏還被用于生成服務(wù)端進(jìn)程:
spawn(?MODULE, server, [])
這是一個(gè)標(biāo)準(zhǔn)宏(也就是說,這是一個(gè)系統(tǒng)定義的宏而不是用戶自定義的宏)。?MODULE 宏總是被替換為當(dāng)前模塊名(也就是在文件開始的部分的 -module 定義的名稱)。宏有許多的高級(jí)用法,作為參數(shù)只是其中之一。
Messager 系統(tǒng)中的三個(gè) Erlang(.erl)文件被分布編譯成三個(gè)獨(dú)立的目標(biāo)代碼文件(.beam)中。當(dāng)執(zhí)行過程中引用到這些代碼時(shí),Erlang 系統(tǒng)會(huì)將它們加載并鏈接到系統(tǒng)中。在本例中,我們把它們?nèi)糠诺疆?dāng)前工作目錄下(即你執(zhí)行 "cd" 命令后所在的目錄)。我們也可以將這些文件放到其它目錄下。
在這個(gè) messager 例子中,我們沒有對發(fā)送消息的內(nèi)容做出任何假設(shè)和限制。這些消息可以是任何合法的 Erlang 項(xiàng)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: