我意外地增加了阵列及其参数的推送方法之间的空间,所以我就这样:添加“推”和括号之间的空间会导致错误在红宝石
def add_credit(description, amount)
@credits.push (description: description, amount: amount)
end
,它导致了错误:syntax error, unexpected tLABEL @credits.push (description: description, amount: amount) ^
在“push”之后我删除了空格之后,它消失了。空间如何影响Ruby中的语法?
我可以说Ruby的解释器在使用'()'方面是灵活的,因此,有时会解释空白。例如,为你编写'@credits.push描述:描述,数量:数量'和ruby会为你添加'()'。我在猜测,相同的解析逻辑(在那种情况下会添加括号)正被使用括号和空格所困惑。传统上,该方法将写为'@ credits.push()'。我还会指出你正在使用散列,并省略了红宝石加入的{}' - > – John