一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Erlang - Erlang的一些編程技巧分享

Erlang的一些編程技巧分享

2020-05-26 11:03腳本之家 Erlang

這篇文章主要介紹了Erlang的一些編程技巧分享,本文是是實際編程中的個人總結,需要的朋友可以參考下

guard

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

復制代碼 代碼如下:

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


guard在list comprehension中可以篩選元素:

復制代碼 代碼如下:

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


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

 

list comprehension

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

復制代碼 代碼如下:

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


一定時間后向進程發送消息:

復制代碼 代碼如下:

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


一段時間后執行某個函數:

復制代碼 代碼如下:

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

 

gb_trees/gb_set

pattern match

pattern match有太多作用了:

pattern match in case

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

復制代碼 代碼如下:

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


pattern match to check data type

 

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

復制代碼 代碼如下:

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

 

list操作

添加元素

添加元素進list有很多方式:

復制代碼 代碼如下:

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

 

foldl/foldr

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

復制代碼 代碼如下:

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


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

 

zip

將兩個list一一對應構造出一個tuple,作為新的list里的元素。

復制代碼 代碼如下:

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


數字進制

 

16##FF,表示16進制數字0xFF,通用格式為scale##num,即scale進制下的num。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产亚洲精品91 | 好姑娘完整版在线观看中文 | 欧美在线视频一区二区 | 精品无人区一区二区三区 | 国产福利专区精品视频 | 91在线播 | a∨79成人网 | 给我视频免费看 | 国产精品一区牛牛影视 | 99自拍视频在线观看 | 交换年轻夫妇HD中文字幕 | 舔逼 | 5x社区在线观看直接进入 | 给我免费的视频在线观看 | 亚洲丰满女人ass硕大 | adc 我们的永久网址 | 国产一区二区视频在线观看 | 国产一区二区三区在线看 | tobu8中国在线观看免费视频 | 欧美一区二区三区高清不卡tv | 欧美精品一区二区在线观看播放 | 国产亚洲精品美女 | xxxxx性中国hd | 国产亚洲欧美一区二区三区 | 99热这里只有精品久久免费 | 女教师被女同学调教成脚奴 | 奇米影视欧美 | 国产亚洲精品一区二区在线播放 | 免费看1级伦理 | 超级乱淫伦短篇在车上 | 日本mature乱子视频 | 精灵之森高清在线 | 处女呦呦 | 精品欧美一区二区三区久久久 | 国内视频一区二区 | 国模娜娜a4u1546全套 | 日韩欧美一区二区三区免费观看 | 国产资源视频在线观看 | 成年视频在线播放 | 久久久久久88色偷偷 | ai换脸杨颖啪啪免费网站 |