web-dev-qa-db-ja.com

Ruby:そうでない場合とそうでない場合

私はif notではなくunless。そのような条件を記述する適切な方法はありますか?人々は一般的にunlessについてどのように感じますか?

49
NullVoxPopuli

これがあなたのお役に立てば幸いです:
https://github.com/bbatsov/Ruby-style-guide

私は個人的にそこに書かれていることに同意しますunless something over if !something修飾子と単純なもの、およびelseがある場合はifを優先します。

38
derp

unless句がある場合を除き、毎回elseを使用します。

だから、私は使用します

unless blah_blah
  ...
end

しかし、else条件がある場合、if not(またはif !)を使用します

if !blah_blah
 ...
else
 ...
end

if !を何年も何年も使用した後、実際にunlessに慣れるまでに時間がかかりました。最近では、大声で読み上げるのが自然に聞こえるすべての場合にそれを好む。

また、末尾のunlessを使用するのが好きです。

increment_by_one unless max_value_reached私はこれらのメソッド/変数名を読みやすさの例として明らかに使用しています-私の意見では、コードの構造は基本的にそのパターンに従うべきです。

より広い意味では、構造はtake_action unless exception_appliesである必要があります

27
jefflunt

if not conditionはほとんど使用されません。 Rubyプログラマー(通常は他の言語から来ている)は、if !conditionの使用を好む傾向があります。

反対に、単一の条件があり、読みやすいと思われる場合に限り、広く使用されます。

Ruby less)で意味をなす も参照してください。

10
Simone Carletti