0

重複の可能性:
Ruby の -> (stab) 演算子とは何ですか?

->Objects on Rails の本を学び、演算子の意味を理解するための問題を見つけようとしています。

コードは次のとおりです。

describe Blog do
   subject       { Blog.new(->{entries}) }
   let(:entries) { [] }

   it "has no entries" do
     subject.entries.must_be_empty
   end

   describe "#new_entry" do
     let(:new_post) { OpenStruct.new }

   before do
     subject.post_source = ->{ new_post }
   end

   it "returns a new post" do
     subject.new_post.must_equal new_post
   end
end

ドキュメントでそれを見つけるのに多くの時間を費やしましたが、できませんでした

4

1 に答える 1

4

これは lambda の新しい構文です。次のように書くこともできます。

subject.post_source = lambda { new_post }

以下は、古いバージョンと新しいバージョンがパラメータでどのように見えるかです (提案については Michael Kohl に感謝します):

v_old = lambda {|a, b| a + b}
v_new = ->(a, b) { a + b}

v_old.call(1, 2) # => 3
v_new.call(3, 4) # => 7
于 2012-09-15T15:21:51.237 に答える