Ruby中的空格规则是什么?

时间:2011-11-12 02:30:05

标签: ruby-on-rails ruby spaces ruby-1.9.2

a = [2,4,5]
a.count-1 => 2
a.count - 1 => 2

但是

a.count -1 => 0

导致这种行为的原因是什么?如果a是整数(而不是数组),为什么不会发生?

另外,我注意到方法名称和后面的括号(参数)之间不能有空格。那是为什么?

Ruby 1.9.2

3 个答案:

答案 0 :(得分:6)

因为可以在没有括号的情况下调用方法,所以:

a.count - 1

表示从a.count减去1,而

a.count -1 # is like a.count(-1)

表示使用a.count作为参数调用方法-1。当a是整数时不会发生这种情况,因为整数没有count方法。你输入时只需要小心。

答案 1 :(得分:1)

a.count - 1 # you are subtracting 
a.count -1  # you are doing a.count(-1)

你确定你不能在方法名和parens之间留一个空格吗?我刚刚在ruby 1.9.2中做到了它并且工作正常。例如

a.product([3])
a.product ([3])

答案 2 :(得分:1)

a.count -1相当于a.count(-1)

它返回数组中包含-1的次数。

a = [-1, 3, 4]
a.count -1 => 1