是否有更简单和/或更易读的方法在 Ruby 中创建闭包,以便定义的方法可以访问变量 m
?
我对这里有一点“问题” lambda
。
我经常动态定义必须访问局部变量的方法:
例如:
class Comparison
def income
123
end
def sales
42342
end
# and a dozen of other methods
# Generate xxx_after_tax for each method
instance_methods(false).each do |m|
lambda {
define_method("#{m}_after_tax") do
send(m) * 0.9
end
}.call
end
end