私は酒宴の商取引でそれを見てきました。
go_to_state :confirm, if: ->(order) { order.confirmation_required? }
では、その記号は何をするのでしょうか?
私は酒宴の商取引でそれを見てきました。
go_to_state :confirm, if: ->(order) { order.confirmation_required? }
では、その記号は何をするのでしょうか?
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}" }
これはラムダ リテラルです。この例を確認してください:
> plus_one = ->(x){x+1}
=> #<Proc:0x9fbaa00@(irb):3 (lambda)>
> plus_one.call(3)
=> 4
ラムダ リテラルはProcのコンストラクタです。AProc
は、コードのブロックを変数に割り当てる方法です。この後、コード ブロックを別の引数で何度でも呼び出すことができます。
これは、Ruby で「関数」をパラメーターとして渡す方法です。多くの言語では、関数への参照を渡すことができます。Ruby では Proc オブジェクトを渡すことができます。