2012-09-15 59 views
0

可能重复:
What is the -> (stab) operator in Ruby?Ruby中的“ - >”运算符是什么意思?

我努力学习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 

我花了很多时间去寻找它的任何文档,但无法

+0

FWIW,这通常被称为“stabby拉姆达”。 –

回答

4

这是一个new syntax for lambda。你也可以把它写这样的:

subject.post_source = lambda { new_post } 

这里是新版本怎么老样子与参数(感谢迈克尔·科尔的建议):

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 
+1

也许更新你的帖子,以显示如何在两个版本中使用带有参数的lambdas。 –

+0

@MichaelKohl:好主意:) –

相关问题