启动没有括号的对象数组时出现Ruby语法错误

时间:2018-08-05 05:07:00

标签: ruby

我收到此错误:

  

SyntaxError((irb):8:语法错误,意外的tSTRING_BEG,期望']')

     

Person.new“尼克”,

     

(irb):8:语法错误,意外的“,”,期望输入结束

     

Person.new“尼克”,

执行以下代码时:

application/json

我了解如何解决它,我只是想知道为什么会这样。

3 个答案:

答案 0 :(得分:3)

我认为这是因为ruby在解释Person.new及其参数之间的空格时感到困惑。在名称周围使用括号()

a = [
  Person.new("Nick"),
  Person.new("James")
]

答案 1 :(得分:1)

问题是:

  

我了解如何解决它,我只是想知道为什么会发生


没有括号是不明确的:它可能同样意味着

  • [Person.new("Nick"), Person.new("James")]
  • [Person.new("Nick", Person.new("James"))]

答案 2 :(得分:0)

如果您运行a = ["hello" "there", "some" "where"],它将返回=> ["hellothere", "somewhere"]

之所以会这样,是因为它试图将字符串附加到类上!