最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Erlang中的匹配模式總結(jié)

 更新時(shí)間:2015年01月04日 11:47:01   投稿:junjie  
這篇文章主要介紹了Erlang中的匹配模式總結(jié),本文講解了賦值時(shí)匹配、流程控制中的匹配、消息傳遞匹配等內(nèi)容,需要的朋友可以參考下

一、賦值時(shí)匹配

原子匹配

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

atom    = atom                        % atom
another = another                     % another
atom    = another                     % exception error

變量匹配
復(fù)制代碼 代碼如下:

Var = 2.                              % 2
Var = 3 - 1.                          % 2
Var = 1.                              % exception error

元組匹配
復(fù)制代碼 代碼如下:

Attr = {name, sloger}.                % {name, sloger}
{name, Name} = Attr.                  % {name, sloger}
Name.                                 % sloger

列表匹配
復(fù)制代碼 代碼如下:

Langs = [perl, python, ruby, erlang].
[Head | Tail] = Langs.
Head.                                 % perl
Tail.                                 % [python, ruby, erlang]

參數(shù)匹配
復(fù)制代碼 代碼如下:

sum([]) -> 0;
sum([H|T]) -> H + sum(T).

sum([1, 2, 3]).                       % 6


記錄匹配
復(fù)制代碼 代碼如下:

%% record(post, {title, slug, body, author}).

Post = #post{title = "Pattern Match in Erlang",
             slug = "pattern-match-in-erlang",
             body = "Bla bla bla...",
             author = sloger}.

#post{title = Title, slug = Slug} = Post.

Title.                                % "Erlang 中的模式匹配總結(jié)"
Slug.                                 % "summary-of-pattern-match-in-erlang"


比特匹配
復(fù)制代碼 代碼如下:

Red = 5.
Green = 23.
Blue = 200.

Color = <<Red:5, Green:6, Blue:5>>.

<<R1:5, G1:6, B1:5>> = Color.

R1.                                   % 5
G1.                                   % 23
B1.                                   % 200


二、流程控制中的匹配

if

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

if
    Pattern1 [when Guard1] -> Expression1;
    Pattern2 [when Guard2] -> Expression2;
    %% and so on ...
    _                      -> Expression3           % 匹配所有其它結(jié)果
end.


case

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

case Expression of
    Pattern1 [when Guard1] -> Expression1;
    Pattern2 [when Guard2] -> Expression2;
    %% and so on ...
    _                      -> Expression3
end.


try catch

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

try FunctionOrExpressions of
    Pattern1 [when Guard1] -> Expression1;
    Pattern2 [when Guard2] -> Expression2
    %% and so on ...
catch
    ExType:ExPattern1 [when ExGuard1] ->
        ExExpression1;
    ExType:ExPattern2 [when ExGuard2] ->
        ExExpression2;
    %% and so on ...
    _:_ -> DefaultExExpression               % _:_ 匹配所有異常
after
    AfterExpressions
end

消息傳遞匹配

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

loop() ->
    receive
        {From, {rectangle, Width, Height}} ->
            From ! {self(), Width * Height},
            loop();
        {From, {circle, R}} ->
            From ! {self(), 3.14 * R * R},
            loop();
        {From, _Other} ->
            From ! {self(), {error, unknown_shape}}
            loop()
    end.
Pid = spawn(fun loop/0).
Pid ! {self(), {rectangle, 10, 5}}.         % {Pid, 50}
Pid ! {self(), {circle, 4}}.                % {Pid, 50.24}
Pid ! {self(), {square, 10}}.               % {Pid, {error, unknown_shape}}

相關(guān)文章

  • Erlang中的OTP簡(jiǎn)介

    Erlang中的OTP簡(jiǎn)介

    這篇文章主要介紹了Erlang中的OTP簡(jiǎn)介,OTP包含了一組庫(kù)和實(shí)現(xiàn)方式,可以構(gòu)建大規(guī)模、容錯(cuò)和分布式的應(yīng)用程序,包含了許多強(qiáng)大的工具,能夠?qū)崿F(xiàn)H248,SNMP等多種協(xié)議,需要的朋友可以參考下
    2015-03-03
  • 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í)現(xiàn)的一個(gè)Web服務(wù)器代碼實(shí)例

    Erlang實(shí)現(xiàn)的一個(gè)Web服務(wù)器代碼實(shí)例

    這篇文章主要介紹了Erlang實(shí)現(xiàn)的一個(gè)Web服務(wù)器代碼實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • Erlang中的socket編程簡(jiǎn)單例子

    Erlang中的socket編程簡(jiǎn)單例子

    這篇文章主要介紹了Erlang中的socket編程簡(jiǎn)單例子,本文給出了TCP服務(wù)器echo示例、Tcp 的echo客戶端示例、UDP server示例、UDP client 示例,需要的朋友可以參考下
    2015-03-03
  • Erlang中的基本元素操作小結(jié)

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

    這篇文章主要介紹了Erlang中的基本元素操作小結(jié),本文講解了元組(tuple)、記錄(record)、列表(list)、映射組(map)等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • Erlang中的映射組Map詳細(xì)介紹

    Erlang中的映射組Map詳細(xì)介紹

    這篇文章主要介紹了Erlang中的映射組Map詳細(xì)介紹,本文講解了創(chuàng)建映射組、更新映射組、兩種操作符的區(qū)別、映射的增加、刪除、獲取等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • Erlang中3種生成隨機(jī)數(shù)的方法

    Erlang中3種生成隨機(jī)數(shù)的方法

    這篇文章主要介紹了Erlang中3種生成隨機(jī)數(shù)的方法,它們分別是random:uniform()、erlang:now()、crypto:strong_rand_bytes(N),需要的朋友可以參考下
    2015-01-01
  • Erlang并發(fā)編程介紹

    Erlang并發(fā)編程介紹

    這篇文章主要介紹了Erlang并發(fā)編程介紹,本文講解了進(jìn)程的創(chuàng)建 、進(jìn)程間通信、超時(shí)設(shè)置以及給出代碼實(shí)例,需要的朋友可以參考下
    2015-01-01
  • Erlang的一些編程技巧分享

    Erlang的一些編程技巧分享

    這篇文章主要介紹了Erlang的一些編程技巧分享,本文是是實(shí)際編程中的個(gè)人總結(jié),需要的朋友可以參考下
    2015-01-01
  • Erlang中的函數(shù)與流程控制介紹

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

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

最新評(píng)論

湖北省| 化隆| 禄劝| 张家界市| 舒兰市| 墨玉县| 南召县| 隆林| 寻乌县| 白朗县| 柳林县| 弋阳县| 昭平县| 三明市| 岱山县| 宿州市| 昌平区| 工布江达县| 延津县| 泗洪县| 卓尼县| 铜鼓县| 航空| 红桥区| 临海市| 安阳市| 莎车县| 马尔康县| 荆州市| 当阳市| 郑州市| 吉首市| 金沙县| 崇左市| 普宁市| 古蔺县| 犍为县| 杂多县| 丰县| 山阴县| 乌鲁木齐县|