gpt4 book ai didi

ruby - 编写多行延迟计算方法的 ruby​​ 方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 08:16:36 24 4
gpt4 key购买 nike

我认为我可能没有以最 ruby​​ 的方式编写延迟实例化的方法/属性。以此方法为例:

def tax
@tax ||= Proc.new do
if flat_tax > commission_plan.tax_max
return commission_plan.tax_max
end if commission_plan.tax_max
if flat_tax < commission_plan.tax_min
return commission_plan.tax_min
end if commission_plan.tax_min
flat_tax
end.call
end

有没有更像 ruby​​ 的方法来重构这个方法?

最佳答案

def tax
@tax ||= calc_tax
end

private

def calc_tax
min, max = commission_plan.tax_min, commission_plan.tax_max
if (min..max).include? flat_tax
flat_tax
else
flat_tax > max ? max : min
end
end

关于ruby - 编写多行延迟计算方法的 ruby​​ 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11234142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com