質問を短くするには、Elixirといくつかの(ほとんどすべての)関数型言語にreturn
文がない理由は何ですか?それは少し長くするなぜElixirにreturn文がないのですか
は、私は、Java、Groovyの、C、Rubyで...私はもちろん
def func (some, parameters) {
# say some error
if(condition 1) {
return -1
}
# execute some function and return from here the result
if(condition 2) {
return process1(params)
}
# execute 'default' behavior when no condition matches and return result
process2(params)
}
のようないくつかのことを書くと、状況に直面しています、これはのように記述することができますネストされたif
ですが、条件のリストが長い場合は、コードが判読できなくなります。
私は質問Return statement in Elixirのための答えを読んで:彼らは、パターンのこの種ではなくreturn
を持っていない理由を実装する方法を明確に説明します。
私はreturn
を持っていると信じていますが、いくつかのFPの概念を破ると思います。
FYIエリクシールにネストされた 'if'の代わりに' cond'を使うことができます。 'cond'では、あなたが書いたコードと比べてインデントの余裕度が1つ以上あることはありません(最後のステートメント群についても同じです)。 – Dogbert
また、 'with'を使うこともできます。これは、いくつかの状況で非常に便利で、コードを読みやすく素敵にすることができます。しかし、私はなぜリターンステートメントが組み込まれていないのか興味があります。 – JustMichael
あなたはかなり広い質問をしています。これについての議論があります:http://wiki.c2.com/?SingleFunctionExitPoint他の場所です。私はこれを閉鎖するか、Programmer's Stack Exchangeに移動する必要があると言いたいと思います。 –