Ruby块中的奇异完美
可能重复:Ruby块中的奇异完美,ruby,block,Ruby,Block,可能重复: 为什么? 解释器似乎感到困惑,认为{…}是一个散列 当解释器无法理解实际有效的代码时,我总是很生气。它类似于有许多此类问题的PHP。它不认为它是散列,而是优先权问题{}绑定比do end更紧密,因此方法:参数{other_method}被解析为方法(:参数{other_method}),这在语法上是无效的(但如果参数不是一个符号而是另一个方法调用) 如果您添加括号(method(:argument){other_method}),它将正常工作 不,代码实际上是无效的。如果是的话,它
为什么? 解释器似乎感到困惑,认为{…}是一个散列
当解释器无法理解实际有效的代码时,我总是很生气。它类似于有许多此类问题的PHP。它不认为它是散列,而是优先权问题
{}
绑定比do end
更紧密,因此方法:参数{other_method}
被解析为方法(:参数{other_method})
,这在语法上是无效的(但如果参数不是一个符号而是另一个方法调用)
如果您添加括号(method(:argument){other_method}
),它将正常工作
不,代码实际上是无效的。如果是的话,它会工作。它不认为这是一个散列,而是一个优先问题
{}
绑定比do end
更紧密,因此方法:参数{other_method}
被解析为方法(:参数{other_method})
,这在语法上是无效的(但如果参数不是一个符号而是另一个方法调用)
如果您添加括号(method(:argument){other_method}
),它将正常工作
不,代码实际上是无效的。如果是的话,它会起作用。这是,,,,,和的副本。我希望你每次都能编写正确的语法分析器。你的标题拼写有奇怪的缺陷。这是,,,的副本,……还有。我很想看到你编写一个解析器,每次都能做正确的事情。你的标题拼写有奇怪的缺陷。
# This works
method :argument do
other_method
end
# This does not
method :argument {
other_method
}