Erlang的Actor回顧:將消息轉(zhuǎn)化為邏輯執(zhí)行
Erlang的Actor:根據(jù)消息模式選擇邏輯分支
在Erlang中,一個消息往往為一個元組,而一個Actor便會根據(jù)這個消息的模式,或者用更通俗的方式來講,“結(jié)構(gòu)”,來選擇處理消息的邏輯分支。例如對于上面舉出的例子,它的模式匹配代碼便可能是:
- receive
- {chat, Person, Topic} ->
- ... % “聊天”邏輯
- {eat, Restaurant} ->
- ... % “吃飯”邏輯
- {work, Person, Job} ->
- ... % “干活”邏輯
- end
小寫字母開頭的標(biāo)識符為“原子”,可以認(rèn)為是一個常量,用于標(biāo)識這個消息用來“干什么”。大寫開頭的為“綁定”,可以認(rèn)為是一個變量(雖然不可變),用于標(biāo)識這個消息“所使用的數(shù)據(jù)”。如果使用示意圖來表示這個消息執(zhí)行方式,則類似于:
如果收到的消息是{eat, {mcdonalds, 2}},則會執(zhí)行“吃飯”邏輯,而執(zhí)行時Restaurant的值將自動綁定為元組{mcdonalds, 2},而不需要任何轉(zhuǎn)化或賦值操作。Erlang便是這樣將一個消息轉(zhuǎn)化為一段邏輯執(zhí)行的。
【編輯推薦】