erlang 中case語句的使用

2021-08-30 03:08:49 字數 1183 閱讀 1632

在erlang中,至少有三種可互換的流程控制方式:函式宣告上的pattern match,case語句,if語句

這裡講將case語句和函式宣告上的pattern match的區別。

case語句的格式如下:

case conditional-expression of

pattern1 -> expression1, expression2, .. ;,

pattern2 -> expression1, expression2, .. ;

... ;

patternn -> expression1, expression2, ..

end

執行的過程是,將conditional-expression挨個和pattern-n去做match,如果match上了,就執行相應的**段,如果沒有match,就嘗試下乙個pattern,直到最後。

例如程式:

area (shape) ->

case shape of

-> math:pi()*r*r;

-> side * side;

other ->

end.

同樣的功能,用函式宣告上的pattern match來實現:

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不限個數,可以多次判定 步驟如下 編寫指令碼讓輸入指定內容時輸出不同,否則報...