Учитывая, что я хотел бы сделать следующий расчет:Есть ли более элегантные способы предотвращения отрицательных чисел в Ruby?
total = subtotal - discount
Поскольку discount
может быть больше, чем subtotal
, есть код, как следующее:
class Calculator
def initialize(subtotal: subtotal, discount: discount)
@subtotal = subtotal
@discount = discount
end
def total
[subtotal - discount, 0].max
end
private
def subtotal
@subtotal
end
def discount
@discount
end
end
Когда видит [subtotal - discount, 0].max
часть или любой похожий код, мне часто приходится останавливаться и думать.
Есть ли более элегантные способы обработки такого рода расчетов?
Это довольно элегантно, как это .. – potashin
Наверное, нет. Ваше решение кажется мне очень элегантным. – Adrian