web-dev-qa-db-ja.com

Ruby:4で割り切れる

これは正常に機能しますが、もっときれいにしたいと思います。4で割り切れるすべての値に対応します。

if i==4 || i==8 || i==12 || i==16 || i==20 || i==24 || i==28 || i==32
  # ...
end

これを行うための賢い、短い方法はありますか?

28
snowangel

これを試して:

if i % 4 == 0

これは「 モジュロ演算子 」と呼ばれます。

129

moduloもあります。

420.modulo(4).zero?

%でそれを行うのを止めるものは何もありませんが、奇妙に見えます:

420.%(4).zero?
48
Andrew Grimm

これは常に良い会話の出発点です。

if (i & 3).zero?
12
Matt