在erlang中,至少有三種可互換的流程控制方式:函式宣告上的pattern match,case語句,if語句
這裡講將case語句和函式宣告上的pattern match的區別。
case語句的格式如下:
case conditional-expression of執行的過程是,將conditional-expression挨個和pattern-n去做match,如果match上了,就執行相應的**段,如果沒有match,就嘗試下乙個pattern,直到最後。pattern1 -> expression1, expression2, .. ;,
pattern2 -> expression1, expression2, .. ;
... ;
patternn -> expression1, expression2, ..
end
例如程式:
area (shape) ->同樣的功能,用函式宣告上的pattern match來實現:case shape of
-> math:pi()*r*r;
-> side * side;
other ->
end.
area2 () ->哪一種更好呢?math:pi()*r*r;
area2 () ->
side * side;
area2 (other) ->
.
沒答案,如果有的話,就是看情況。
erlang中的case與函式宣告上的pattern match的主要區別有:
*case用來匹配的表示式只能是乙個,而函式可以若干個
*case可以用在程式中的任何地方,而函式只能在宣告的地方
主要就這麼兩點區別,其他的幾乎一樣了。
另外,下面的**好麼?為什麼?
convert(day) ->case day of
monday -> 1;
tuesday ->2;
wednesday ->3;
thursday ->4;
friday ->5;
saturday ->6;
sunday ->7;
other ->
end.
fpga中的case語句
case語句模型 module ex case input wire rst n,input wire sclk,output reg o dv,output reg 7 0 o data,input wire 9 0 i data,input wire 7 0 i addr reg 2 0 cnt...
SQL中Case語句用法
sql中,case具有兩種格式。即簡單case函式和case搜尋函式。下文中筆者與大家一起討論sql中case語句用法。簡單case函式 case when 1 then 男 when 2 then 女 else 其他 end case搜尋函式 case when 1 then 男 when 2 t...
shell指令碼中的if語句與case語句
一 if語句 if語句從上至下按照順序依次判定執行 格式如下 if 判定條件 如果 then 那麼 elif 重新的一次判定 又如果 then 那麼 else 否則 可以新增也可以不加 fi 結尾 倒寫 注意 其中的elif不限個數,可以多次判定 步驟如下 編寫指令碼讓輸入指定內容時輸出不同,否則報...