佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Erlang中的模塊與模式匹配介紹

Erlang中的模塊與模式匹配介紹

熱門(mén)標(biāo)簽:呼叫中心市場(chǎng)需求 地方門(mén)戶(hù)網(wǎng)站 Linux服務(wù)器 網(wǎng)站排名優(yōu)化 服務(wù)外包 AI電銷(xiāo) 百度競(jìng)價(jià)排名 鐵路電話(huà)系統(tǒng)

模塊是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.

模塊屬性有兩種類(lèi)型:預(yù)定義型和用戶(hù)定義型。
 
Erlang中用于代表函數(shù)的數(shù)據(jù)類(lèi)型被稱(chēng)為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有兩種方法來(lái)捕捉異常錯(cuò)誤,一種是把拋出異常的調(diào)用函數(shù)封裝在一個(gè)try_catch 表達(dá)式里,提供了概括信息,另一種是把調(diào)用封裝在一個(gè)catch表達(dá)式里,提供了詳細(xì)的棧跟蹤信息。在捕捉到一個(gè)異常后,可以調(diào)erlang:get_stacktrace()來(lái)找到最近的棧信息。
 
把二進(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ù)類(lèi)型

精心選擇宏的名稱(chēng)和Erlang代碼布局,能最大限度地縮小C和Erlang的語(yǔ)義鴻溝。在Erlang里,最小的尋址單元是1位,位串里的位序列可直接訪問(wèn)。

標(biāo)簽:湖南 湘潭 蘭州 銅川 仙桃 衡水 崇左 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Erlang中的模塊與模式匹配介紹》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話(huà)咨詢(xún)

    • 400-1100-266
    长沙县| 四子王旗| 公安县| 区。| 永泰县| 遂宁市| 大港区| 吴江市| 伊金霍洛旗| 拉孜县| 察隅县| 于都县| 鸡西市| 图们市| 响水县| 东平县| 宣化县| 班玛县| 博湖县| 静安区| 万山特区| 凤凰县| 唐山市| 洛宁县| 博湖县| 红河县| 南投市| 邹平县| 耿马| 洛隆县| 双流县| 香港 | 洛隆县| 嘉义县| 定日县| 潍坊市| 成都市| 蓬莱市| 温州市| 隆回县| 衡阳县|