校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Erlang的一些編程技巧分享

Erlang的一些編程技巧分享

熱門標(biāo)簽:萬利達(dá)綜合醫(yī)院地圖標(biāo)注點 武漢AI電銷機(jī)器人 外呼系統(tǒng)會封嗎 股票配資電銷機(jī)器人 在電子版地圖標(biāo)注要收費嗎 地圖標(biāo)注如何弄全套標(biāo) 電銷機(jī)器人 深圳 南京電銷外呼系統(tǒng)哪家好 實體店地圖標(biāo)注怎么標(biāo)

guard

guard可以以逗號或者分號分隔,以逗號分隔表示最終的結(jié)果為各個guard的and結(jié)果,以分號則是只要任意一個guard為true則最終結(jié)果為true。

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

guard(X, Y) when not(X>Y), is_atom(X) ->
    X + Y.

guard在list comprehension中可以篩選元素:
復(fù)制代碼 代碼如下:

NewNodes  = [Node || Node - AllNodes, not gb_sets:is_member(Node, NewQueried)],

guard中不能使用自定義函數(shù),因為guard應(yīng)該保證沒有副作用,但自定義函數(shù)無法保證這一點,所以erlang禁止在guard中使用自定義函數(shù)。

list comprehension

list comprehension是一個非常有用的語法特性,它可以用于構(gòu)造一個新的list,可以用于將一種list映射到另一種list,可以篩選list元素。只要是跟list相關(guān)的操作,優(yōu)先考慮用list comprehension來實現(xiàn),將大大減少代碼量。記住list comprehension的語法:

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

[Expression || Generators, Guards, Generators, ...]
timer

一定時間后向進(jìn)程發(fā)送消息:
復(fù)制代碼 代碼如下:

erlang:send_after(token_lifetime(), self(), renew_token),

一段時間后執(zhí)行某個函數(shù):
復(fù)制代碼 代碼如下:

{ok, TRef} = timer:apply_interval(Interval, ?MODULE, announce, [self()]),

gb_trees/gb_set

pattern match

pattern match有太多作用了:

pattern match in case

case中判定多個值,比其使用邏輯運算符簡潔多了:

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

A = 1, B = 2,
case {A, B} of
    {_C, _C} -> true;
    {_, _} -> false
end

pattern match to check data type

pattern match可以用于檢測變量的類型,可以用于檢測函數(shù)的返回值,就像C/C++中的assert一樣,可以用于盡早檢測出異常狀態(tài):

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

ping({_, _, _, _} = IP, Port) ->
    ok.
{ok, Ret} = call().

list操作

添加元素

添加元素進(jìn)list有很多方式:

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

[2]++[3, 4].
[2|[3,4]].

foldl/foldr

用于遍歷list計算出一個“累加值“。

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

lists:foldl(fun(X, Sum) -> X + Sum end, 0, [1,2,3,4,5]).

也就是遍歷一個list,將每個元素傳遞給fun,將fun的返回值繼續(xù)傳遞給下一個元素。

zip

將兩個list一一對應(yīng)構(gòu)造出一個tuple,作為新的list里的元素。

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

lists:zip([1, 2, 3], [4, 5, 6]).
    => [{1,4},{2,5},{3,6}]

數(shù)字進(jìn)制

16##FF,表示16進(jìn)制數(shù)字0xFF,通用格式為scale##num,即scale進(jìn)制下的num。

標(biāo)簽:安徽 廣東 濟(jì)寧 武威 濟(jì)源 泰安 汕頭 臺州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Erlang的一些編程技巧分享》,本文關(guān)鍵詞  Erlang,的,一些,編程技巧,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Erlang的一些編程技巧分享》相關(guān)的同類信息!
  • 本頁收集關(guān)于Erlang的一些編程技巧分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 丰台区| 扬中市| 南召县| 边坝县| 罗甸县| 萍乡市| 彝良县| 肥城市| 皋兰县| 克山县| 连江县| 辽阳市| 乐昌市| 莆田市| 滨州市| 临安市| 佳木斯市| 和顺县| 怀仁县| 天祝| 苍南县| 东乡族自治县| 商南县| 根河市| 澎湖县| 新津县| 黑水县| 疏勒县| 同江市| 浦东新区| 明光市| 那坡县| 台南县| 金华市| 托里县| 台江县| 无锡市| 昂仁县| 榆社县| 大冶市| 白城市|