Ruby中是否有方法可判断两个Integer的差值大于指定数值?
Ruby判断两个整数差值超过指定阈值的简洁实现
你可以直接用Ruby内置的abs(绝对值)方法简化逻辑,比原来的或判断可读性更高,和原有逻辑完全等价:
def check_discrepancy(a, b) 'discrepancy between values!' if (a - b).abs > 5 end
如果需要明确体现区间判断逻辑,也可以用between?方法实现:
def check_discrepancy(a, b) 'discrepancy between values!' unless a.between?(b - 5, b + 5) end
如果需要适配不同的差值阈值,可以把阈值改为可配置参数,复用性更强:
# 阈值默认值为5,调用时可自定义传入其他数值 def check_discrepancy(a, b, threshold = 5) 'discrepancy between values!' if (a - b).abs > threshold end
以上用到的都是Ruby整数类的内置方法,无需引入额外依赖,性能和原有实现一致。
内容的提问来源于stack exchange,提问作者Baitalon
相关产品推荐
相关产品推荐

