これは私が見つけた最も近いですが、それは数字の代わりにブール値を扱う:コードが短くて読みやすい保ちながら、私は、Rubyで0シナリオによる除算を避けるためにしようとしている DRY up Ruby ternaryRubyの3進数が短くなっていますか?
。
私は、コードの次のビットがより簡潔にしたい:
number_to_percentage ((percent_complete.nan? ? 0 : (percent_complete * 100)), :precision => 0)
または
number_to_percentage ((percent_complete.nan? ? 0 : percent_complete) * 100, :precision => 0)
ちょうど今読むためには本当に難しいようです。より多くの連鎖が関わっているので、percent_complete
は実際にはかなり長くなります。私はメソッドからこの値を返すので、もう一度長くなります。
一時変数を使用したりメソッド名を短縮したりしないようにしたいので、別の方法を知りたいと思っていました。
"percent_complete"を2回入力しなくても済むようにすれば、それはかなり解決します。
'percent_complete'をNaNではなくnilにすることができますか?次に、 'nil.to_i == 0'を利用することができます。 –
@muが短すぎます:提案していただきありがとうございます。私はそれを無しに変更できるかどうか分からない。私はそれを調べなければならないでしょう。現在、percent_completeはfloatをfloatで割ったものです。 –
個人的には、文体的な面では、メソッドへのパラメータリスト内の三項文が見えないほうがいいでしょう。 –