我有以下Erlang代碼,當我嘗試編譯它時,它給出如下警告,但這是有道理的。函數需要兩個參數,但我需要匹配「其他所有」而不是x,y或z。Erlang案例陳述
-module(crop).
-export([fall_velocity/2]).
fall_velocity(P, D) when D >= 0 ->
case P of
x -> math:sqrt(2 * 9.8 * D);
y -> math:sqrt(2 * 1.6 * D);
z -> math:sqrt(2 * 3.71 * D);
(_)-> io:format("no match:~p~n")
end.
crop.erl:9: Warning: wrong number of arguments in format call.
我正在嘗試一個匿名變量後io格式,但它仍然不開心。
我會拋出一個異常,或者甚至不檢查x,y,z以外的其他東西。 Erlang難以理解,不需要過度。 – Berzemus
沒錯。但是如果不檢查,你可以在比調用函數晚得多的地方發生錯誤。 {ok,R} = fall_velocity(A,B)可能會提前指出錯誤。 –
http://www.erlang.se/doc/programming_rules.shtml#REF32551 –