什么是“ - >” Ruby的运算符是什么意思

时间:2012-09-15 15:20:40

标签: ruby

  

可能重复:
  What is the -> (stab) operator in Ruby?

我正在尝试学习对象上的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

我花了很多时间在任何文档中找到它,但不能

1 个答案:

答案 0 :(得分:4)

那是new syntax for 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