偶尔我需要做这样的事情:
output_val = ( input_val < max ) ? input_val : max
如果我对太空感到吝啬,我可能会选择:
output_val = [ input_val, max ].min
第三种选择是否简洁而不牺牲表现力?
答案 0 :(得分:2)
猴子补丁!没有比这更多的Rubylike。
class Numeric
def unless_over(max)
[self, max].min
end
end
示例:
133.unless_over(100) #=> 100
133.unless_over(150) #=> 133
注意:我实际上不会做这个(我会用你的第二个例子),但我猜这是问题的精神。