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 回答