2016-06-14 32 views
2

私はアーランを学んでいる、と私は、これは好ましい「安全な使用」安全な使用

better(N) -> 
X = case N of 
    1 -> 1; 
    _ -> 0 
end, 
X. 

もの例の一例である「安全な使用
の例を見て安全悪い

bad(N) -> 
    case N of 
    1 -> X =1; 
    _ -> X = 0 
    end, 
X. 

は、私はそれらの2つ(私には同じように見える)の機能を理解し、私はのは、最初の関数良く、第二の不良を作るのか理解できませんでしたか?

答えて

9

最初の例では、Xは1回だけバインドされています。 caseの式を変更して新しい句を追加する場合は、Xのバインディングは変わりません。しかし、2番目の例では、新しいcase句にXをバインドするのを忘れるのは簡単ではないので、安全でない変数に関するコンパイルエラーが発生することがありますので、コードは必要以上に冗長で読みにくくなります。

best(1) -> 1; 
best(_N) -> 0. 

これはbad又はbetter機能のいずれよりも明確であり、より容易に維持されている:

このようcaseを使用する別の代替ではなく、複数の機能の句を使用することです。

関連する問題