a = [2,4,5]
a.count-1 => 2
a.count - 1 => 2
但是
a.count -1 => 0
导致这种行为的原因是什么?如果a是整数(而不是数组),为什么不会发生?
另外,我注意到方法名称和后面的括号(参数)之间不能有空格。那是为什么?
Ruby 1.9.2
答案 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