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