使用lambda代替Proc,确保其在任何作用域下执行时行为一致。
示例代码:
def create_adder(a)
lambda { |b| a + b } end
def create_multiplier(a)
lambda { |b| a * b } end
add_5 = create_adder(5) add_10 = create_adder(10) mult_2 = create_multiplier(2)
puts add_5.call(3) # 输出 8 puts add_10.call(3) # 输出 13 puts mult_2.call(3) # 输出 6