以下を実現する方法はありますか1行? :式評価に基づいて、メソッドに異なるパラメータを渡すRubyの方法は何ですか?
if foo
some_method this_var, other_var1, other_var2
else
some_method that_var, other_var1, other_var2
end
以下を実現する方法はありますか1行? :式評価に基づいて、メソッドに異なるパラメータを渡すRubyの方法は何ですか?
if foo
some_method this_var, other_var1, other_var2
else
some_method that_var, other_var1, other_var2
end
some_method((foo ? this_var : that_var), other_var1, other_var2)
ダンは1行でそれを行う方法を示しましたが、私見すべてのコストで行数を減らすことは、読みやすさのために素晴らしいではありません。私は条件演算子の大ファンではないんだ
var = foo ? this_var : that_var
some_method(var, other_var1, other_var2)
素晴らしいチップ。また、(Ruby on Railsの)ビューではなくコントローラにロジックを配置するように強制します。 –
:私はワンライナーよりもあなたが今持っているものよりも短く、IMHOより読みやすい、以下を行うだろう。 Cでは、Cでは、if
が式ではなく式であるのに対し、条件付き演算子は式です。 Rubyでは、しかし、すべては当然、if
はあまりにも、表現され、式ですので:
some_method(if foo then this_var else that_var end, other_var1, other_var2)
しかし、マイケル・コール首相が指摘するように、名前は、コードの意図を明確にすることができますので、多分それ引数に名前を付ける方が良いです。
meaningful_name = if foo then this_var else that_var end
some_method(meaningful_name, other_var1, other_var2)
これは正しいと思われる問題は何ですか? –