Erlang中的模塊與模式匹配介紹
更新時(shí)間:2015年03月09日 08:49:28 投稿:junjie
這篇文章主要介紹了Erlang中的模塊與模式匹配介紹,本文分別對(duì)模塊與模式匹配做了講解,需要的朋友可以參考下
模塊是Erlang的基本代碼單元,erl文件編譯后以.beam作為擴(kuò)展名,采用UTF8字符集,.erl文件示意如下:
-module(模塊名,與存放模塊的文件名相同)
-export([方法名/輸入?yún)?shù)的個(gè)數(shù)])
復(fù)制代碼 代碼如下:
Method1( {a,b,c})->a*b*c;
Mehtod2({d,e})->d-e.
模塊屬性有兩種類型:預(yù)定義型和用戶定義型。
Erlang中用于代表函數(shù)的數(shù)據(jù)類型被稱為fun,相當(dāng)于python中的lambda,一般用于
1) 對(duì)列表里的每個(gè)元素執(zhí)行相同的操作
2) 創(chuàng)建自己的控制
3) 實(shí)現(xiàn)可重入解析代碼,解析組合器或者lazy evaluator
模式匹配是Erlang的根基,case和if表達(dá)式使Erlang小而一致。
復(fù)制代碼 代碼如下:
case Expression of
Pattern1[ when Guard1] -> Expr-seq1;
Pattern2[when Guard2]-> Expr-seq2;
…
end
if
Guard1-> Expr_seq1;
Guard2-> Expr_seq2;
…
end
Erlang有兩種方法來捕捉異常錯(cuò)誤,一種是把拋出異常的調(diào)用函數(shù)封裝在一個(gè)try_catch 表達(dá)式里,提供了概括信息,另一種是把調(diào)用封裝在一個(gè)catch表達(dá)式里,提供了詳細(xì)的棧跟蹤信息。在捕捉到一個(gè)異常后,可以調(diào)erlang:get_stacktrace()來找到最近的棧信息。
把二進(jìn)制型,位串,和位級(jí)模式匹配引入Erlang是為了簡(jiǎn)化網(wǎng)絡(luò)編程。二進(jìn)制型是置于雙小于號(hào)和雙大于號(hào)之間的一列整數(shù)或字符串。
例如: 1> Mybin1 = << “ILOVE YOU”>>
復(fù)制代碼 代碼如下:
Term_to_bingary(Term) ->Bin 轉(zhuǎn)換為二進(jìn)制型
Binary_to_Term(Bin) ->Term 二進(jìn)制型轉(zhuǎn)換為Erlang的數(shù)據(jù)類型
精心選擇宏的名稱和Erlang代碼布局,能最大限度地縮小C和Erlang的語義鴻溝。在Erlang里,最小的尋址單元是1位,位串里的位序列可直接訪問。
相關(guān)文章
Erlang初學(xué):Erlang的一些特點(diǎn)和個(gè)人理解總結(jié)
這篇文章主要介紹了Erlang初學(xué):Erlang的一些特點(diǎn)和個(gè)人理解總結(jié),本文總結(jié)了函數(shù)式編程、一切都是常量、輕量進(jìn)程、進(jìn)程端口映射及典型缺點(diǎn)等內(nèi)容,需要的朋友可以參考下2015-02-02Erlang語法學(xué)習(xí)筆記:變量、原子、元組、列表、字符串
這篇文章主要介紹了Erlang語法學(xué)習(xí)筆記:變量、原子、元組、列表、字符串,本文簡(jiǎn)明總結(jié)了這5種類型的相關(guān)知識(shí),需要的朋友可以參考下2015-01-01Erlang程序設(shè)計(jì)(第2版)讀書筆記:Erlang安裝和基礎(chǔ)語法
這篇文章主要介紹了Erlang程序設(shè)計(jì)(第2版)讀書筆記:Erlang安裝和基礎(chǔ)語法,需要的朋友可以參考下2015-02-02