4

私は酒宴の商取引でそれを見てきました。

go_to_state :confirm, if: ->(order) { order.confirmation_required? }

では、その記号は何をするのでしょうか?

4

2 に答える 2

6

Ruby 1.9 では、stab 演算子->を使用してラムダを作成できます。

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}" } 
于 2013-05-02T12:15:40.730 に答える
4

これはラムダ リテラルです。この例を確認してください:

 > plus_one = ->(x){x+1}
 => #<Proc:0x9fbaa00@(irb):3 (lambda)> 
 > plus_one.call(3)
 => 4 

ラムダ リテラルはProcのコンストラクタです。AProcは、コードのブロックを変数に割り当てる方法です。この後、コード ブロックを別の引数で何度でも呼び出すことができます。

これは、Ruby で「関数」をパラメーターとして渡す方法です。多くの言語では、関数への参照を渡すことができます。Ruby では Proc オブジェクトを渡すことができます。

于 2013-05-02T12:14:59.040 に答える