欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Erlang中的基本元素操作小結(jié)

 更新時間:2015年03月09日 09:25:01   投稿:junjie  
這篇文章主要介紹了Erlang中的基本元素操作小結(jié),本文講解了元組(tuple)、記錄(record)、列表(list)、映射組(map)等內(nèi)容,需要的朋友可以參考下

Erlang shell中,用句號加空格、tab或回車來結(jié)束表達(dá)式,%表示注釋的起點,;隔離子句。模塊是.erl 文件,庫的頭文件.hrl, shell中的編譯時c(),外編譯命令時erlc, 退出shell用q(),或erlang:halt().

變量以大寫字母開頭,且不能重新綁定變量,只能一次性賦值,具有不可變狀態(tài)。原子是全局的,不需要宏定義或包含文件,以小寫字母開頭,還可放在單引號內(nèi),是極簡表達(dá)式。
 
元組(tuple)是一些數(shù)量固定的項目歸組成單一實體{,}, 由于是匿名的,通常在第一個元素上貼標(biāo)簽,來增加可讀性。提取元組中的值使用模式匹配操作符=,_為匿名變量,多個_不必綁定相同的值。但是,_Mode則是常規(guī)變量。例如:

復(fù)制代碼 代碼如下:

2> Family={family,father,mother,son}.
{family,father,mother,son}
3> {_,X,Y,Z}=Family.
{family,father,mother,son}
4> X.
father
5> Y.
mother
6> Z.
Son

記錄(record)是元組的另一種形式,可以給元組的各個元素關(guān)聯(lián)一個名稱。使用記錄的情形:
1)  用一些預(yù)先確定且數(shù)量固定的原子表示數(shù)據(jù)
2)  元素數(shù)量和元素名稱不會隨時間改變
3)  大元組中每個元組有相同的結(jié)構(gòu)
采用#myrecord{k1=v1,k2=v2..}來創(chuàng)建record。

列表(list)形如[,,]可以存放任意數(shù)量的事物。Head可以是任何事物,Tail通常仍然是個列表。只要用[…|T]構(gòu)建一個列表,就應(yīng)確保T是一個列表。同樣使用模式匹配來提取列表中的元素。列表推導(dǎo)的常規(guī)形式:
[X||Qualifier1,Qualifier2,…]
X是任意一表達(dá)式,限定符qualifier可以生成器,位串生成器或過濾器。生成器的寫法
Pattern<- ListExpr
反轉(zhuǎn)一個列表時,要調(diào)用lists:reverse.
 
Erlang中沒有字符串,字符串是個整數(shù)列表,”HelloCloud”是一個列表的簡寫,io:format來指定打印輸出。
 
映射組(map)是鍵值對的關(guān)聯(lián)性集合,內(nèi)部作為有序計劃存儲,適用情形:
1)  鍵不能預(yù)知時來表示鍵值對數(shù)據(jù)結(jié)構(gòu)
2)  存在大量不同鍵來表示數(shù)據(jù)
3)  效率不重要時的萬能數(shù)據(jù)結(jié)構(gòu)
4)  自解釋型數(shù)據(jù)結(jié)構(gòu)
5)  用來表示鍵值解析樹,如xml或配置文件
6)  用Json來通信

映射組的語法:

復(fù)制代碼 代碼如下:

#{key1 op val1,key2 op val2,…,KeyN op valN}

#后沒有名稱,op是=>或:=之一。 => 將現(xiàn)有鍵值更新為新值或給映射組增加一個新鍵值對。 :=用于更新。 健不能包含任何變量,值可以包含未綁定變量,在模式匹配成功后綁定。

映射組可以通過io:format 里的~p選項輸出,并用io:read 或file:consult讀取。

復(fù)制代碼 代碼如下:

Maps:to_json(Map)->Bin 轉(zhuǎn)化為二進(jìn)制型json
Maps:from_json(bin)-> Nap, 將二進(jìn)制json轉(zhuǎn)化為map

Json與映射組的對應(yīng)關(guān)系:

1)  Json數(shù)字:Erlang的整數(shù)或浮點數(shù)
2)  Json字符串:Erlang二進(jìn)制型
3)  Json列表:Erlang列表
4)  true和false 對應(yīng)
5)  映射組中的健必須是原子,字符串或二進(jìn)制型,值必須用JSON的數(shù)據(jù)類型表示

相關(guān)文章

  • Erlang編程語言的第一印象

    Erlang編程語言的第一印象

    這篇文章主要介紹了Erlang編程語言的第一印象,本文對Erlang做了一個簡單總結(jié),需要的朋友可以參考下
    2015-03-03
  • 深入淺析RabbitMQ鏡像集群原理

    深入淺析RabbitMQ鏡像集群原理

    當(dāng)單臺 RabbitMQ 服務(wù)器的處理消息的能力達(dá)到瓶頸時,此時可以通過 RabbitMQ 集群來進(jìn)行擴(kuò)展,從而達(dá)到提升吞吐量的目的
    2021-08-08
  • Erlang中的Record詳解

    Erlang中的Record詳解

    這篇文章主要介紹了Erlang中的Record詳解,本文講解了定義Record、創(chuàng)建Record、訪問Record、更新Record、匹配Record和Guard語句、使用Record等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Erlang IO編程之文件目錄操作常用方法小結(jié)

    Erlang IO編程之文件目錄操作常用方法小結(jié)

    這篇文章主要介紹了Erlang IO編程之文件目錄操作常用方法小結(jié),本文講解了常用的文件操作如打開文件、讀取文件、寫入文件、刪除文件等,需要的朋友可以參考下
    2015-01-01
  • Erlang中執(zhí)行l(wèi)inux命令的兩種方法

    Erlang中執(zhí)行l(wèi)inux命令的兩種方法

    這篇文章主要介紹了Erlang中執(zhí)行l(wèi)inux命令的兩種方法,本文著重講解了erlang:open_port的使用,需要的朋友可以參考下
    2015-01-01
  • Erlang中的函數(shù)與流程控制介紹

    Erlang中的函數(shù)與流程控制介紹

    這篇文章主要介紹了Erlang中的函數(shù)與流程控制介紹,本文先是講解了函數(shù)的一些知識,然后講解了case語句和if語句及算術(shù)表達(dá)式等內(nèi)容,需要的朋友可以參考下
    2015-01-01
  • CentOS 6.5源碼安裝Erlang教程

    CentOS 6.5源碼安裝Erlang教程

    這篇文章主要介紹了CentOS 6.5源碼安裝Erlang教程,本文講解了源碼編譯安裝的過程和遇到的一些錯誤處理方法,需要的朋友可以參考下
    2015-01-01
  • 一篇文章帶你從入門到精通:RabbitMQ

    一篇文章帶你從入門到精通:RabbitMQ

    RabbitMQ是實現(xiàn)了高級消息隊列協(xié)議(AMQP)的開源消息代理軟件(亦稱面向消息的中間件)。RabbitMQ服務(wù)器是用Erlang語言編寫的,所有主要的編程語言均有與代理接口通訊的客戶端庫
    2021-06-06
  • Erlang語法學(xué)習(xí)筆記:變量、原子、元組、列表、字符串

    Erlang語法學(xué)習(xí)筆記:變量、原子、元組、列表、字符串

    這篇文章主要介紹了Erlang語法學(xué)習(xí)筆記:變量、原子、元組、列表、字符串,本文簡明總結(jié)了這5種類型的相關(guān)知識,需要的朋友可以參考下
    2015-01-01
  • Erlang初學(xué):Erlang的一些特點和個人理解總結(jié)

    Erlang初學(xué):Erlang的一些特點和個人理解總結(jié)

    這篇文章主要介紹了Erlang初學(xué):Erlang的一些特點和個人理解總結(jié),本文總結(jié)了函數(shù)式編程、一切都是常量、輕量進(jìn)程、進(jìn)程端口映射及典型缺點等內(nèi)容,需要的朋友可以參考下
    2015-02-02

最新評論