我喜欢括号中的方法参数,这是一些帕斯卡的怀旧之情。清理代码时,如果我发现没有它的方法参数,我会立即将它们附上。今天它导致我的工作代码抛出错误,尽管根据文档我的语法看起来不错。
Kernel.raise 的文档格式如下:
(Object) raise(exception[, string [, array]])
这些都在工作:
> raise TypeError
TypeError: TypeError
> raise (TypeError)
TypeError: TypeError
> raise "Error message"
RuntimeError: Error message
> raise ("Error message")
RuntimeError: Error message
但是 next 的封闭版本会引发语法错误:
> raise TypeError, "Error message"
TypeError: Error message
> raise (TypeError, "Error message")
SyntaxError: unexpected ')', expecting $end
我可以没有它,我只是想知道为什么这会以错误结束。