Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby块中的奇异完美_Ruby_Block - Fatal编程技术网

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
}