1

値をインクリメント/デクリメントできるメソッドのセットが欲しいのですが、下限はゼロです。

基本的に:

def decrement
  @value -= 1
end

ただし、ゼロより低くしたくありません。

これを行うための最良の「ルビーの方法」は何ですか?

4

4 に答える 4

6
def decrement
  @value -= 1 unless @value.zero?
end

または、例外をスローしたい場合:

def decrement
  raise RangeError, "can't decrement below zero" if @value.zero?
  @value -= 1
end
于 2011-03-01T23:23:01.703 に答える
4
def decrement
  @value = [@value-1, 0].max
end
于 2011-03-01T23:23:10.357 に答える
1
def decrement(value)
  value -= 1 if value - 1 >= 0
end
于 2011-03-01T23:23:13.740 に答える
1
def decrement
  @value -= 1 unless @value - 1 < 0
end
于 2011-03-01T23:32:04.787 に答える