块开头的SyntaxError

时间:2011-12-05 18:32:15

标签: ruby ruby-1.9.3

有人可以解释为什么这是错的吗?

object = Special::MyObject.new 'string' { "a block" }

我在

上获得SyntaxError
.. { "a ...
    ^

它需要一个keyword_end

如果删除块,一切正常

2 个答案:

答案 0 :(得分:4)

您不能将括号块({ ... })与没有括号的方法一起使用。您可以使用do ... end或添加( ... )

object = Special::MyObject.new('string') { "a block" }

object = Special::MyObject.new 'string' do
  "a block"
end

答案 1 :(得分:1)

object = Special::MyObject.new('string') { "a block" }