2011-11-11 6 views

答えて

4
some_method((foo ? this_var : that_var), other_var1, other_var2) 
3

ダンは1行でそれを行う方法を示しましたが、私見すべてのコストで行数を減らすことは、読みやすさのために素晴らしいではありません。私は条件演算子の大ファンではないんだ

var = foo ? this_var : that_var 
some_method(var, other_var1, other_var2) 
+1

素晴らしいチップ。また、(Ruby on Railsの)ビューではなくコントローラにロジックを配置するように強制します。 –

2

:私はワンライナーよりもあなたが今持っているものよりも短く、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) 
関連する問題