我在狂欢商业中看到了这一点。
go_to_state :confirm, if: ->(order) { order.confirmation_required? }
那么这个符号会做什么?
答案 0 :(得分:6)
在Ruby 1.9中,您可以使用stab运算符->
来创建lambda。
l1 = lambda { puts "I'm a lambda" }
l2 = -> { puts "I'm a lambda" }
操作员也接受参数。
l1 = lambda(name) { puts "I'm a #{name}" }
l2 = ->(name) { puts "I'm a #{name}" }
答案 1 :(得分:4)
这是 lambda literal 。检查此示例:
> plus_one = ->(x){x+1}
=> #<Proc:0x9fbaa00@(irb):3 (lambda)>
> plus_one.call(3)
=> 4
lambda文字是Proc的构造函数。 Proc
是一种将代码块分配给变量的方法。在此之后,您可以根据需要多次使用不同的参数调用您的代码块。
这是你可以在ruby中传递“function”作为参数的方法。在许多语言中,您可以传递对函数的引用。在ruby中,您可以传递Proc对象。