在Ruby中,可以使用lambda
或proc
来定义/命名块。lambda
和proc
都是创建匿名函数的方法,但它们在语法和行为上有一些区别。
lambda
定义/命名块:my_lambda = lambda { |x| x * 2 }
lambda
创建的匿名函数可以像普通函数一样调用:
result = my_lambda.call(5) # 结果为10
proc
定义/命名块:my_proc = proc { |x| x * 2 }
proc
创建的匿名函数也可以像普通函数一样调用:
result = my_proc.call(5) # 结果为10
define_method
定义/命名块:class MyClass
define_method(:my_method) { |x| x * 2 }
end
my_instance = MyClass.new
result = my_instance.my_method(5) # 结果为10
define_method
允许你在类中定义一个新的实例方法,这个方法的实现是一个块。
总结:在Ruby中,你可以使用lambda
、proc
或define_method
来定义/命名块。这些方法都可以创建匿名函数,并且可以像普通函数一样调用。
领取专属 10元无门槛券
手把手带您无忧上云