Ruby减少限制

时间:2011-03-01 23:20:34

标签: ruby methods limit increment decrement

我希望有一组方法可以递增/递减一个值,但下限为零。

基本上:

def decrement
  @value -= 1
end

除此之外,我不希望它低于零。

这样做最好的“红宝石方式”是什么?

4 个答案:

答案 0 :(得分:6)

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

或者如果您想抛出异常:

def decrement
  raise RangeError, "can't decrement below zero" if @value.zero?
  @value -= 1
end

答案 1 :(得分:4)

def decrement
  @value = [@value-1, 0].max
end

答案 2 :(得分:1)

def decrement(value)
  value -= 1 if value - 1 >= 0
end

答案 3 :(得分:1)

def decrement
  @value -= 1 unless @value - 1 < 0
end