a = [2,4,5]
a.count-1 => 2
a.count - 1 => 2
a.count -1 => 0
是什麼原因導致這種行爲?如果a是整數(而不是數組),爲什麼不會發生?
此外,我注意到方法名稱和後面的括號(對於參數)之間不能有空格。這是爲什麼?
紅寶石1.9.2
a = [2,4,5]
a.count-1 => 2
a.count - 1 => 2
a.count -1 => 0
是什麼原因導致這種行爲?如果a是整數(而不是數組),爲什麼不會發生?
此外,我注意到方法名稱和後面的括號(對於參數)之間不能有空格。這是爲什麼?
紅寶石1.9.2
因爲方法可以與沒有括號被調用,此:
a.count - 1
均值減去1從a.count
,而
a.count -1 # is like a.count(-1)
意味着調用方法a.count
作爲參數的是-1
。當a
是一個整數時不會發生,因爲整數沒有count
方法。你只需要小心,因爲你鍵入。
a.count - 1 # you are subtracting
a.count -1 # you are doing a.count(-1)
你確定你不能在方法名和parens之間放一個空格嗎?我剛剛在紅寶石1.9.2中做到了,它工作正常。例如,
a.product([3])
a.product ([3])
a.count -1
相當於a.count(-1)
。
它返回-1包含在你的數組中的次數。
a = [-1, 3, 4]
a.count -1 => 1
值得一提的是,在'a.count -1'的情況下,'-'仍然是一種方法。看到這裏:http://www.rubyinside.com/rubys-unary-operators-and-how-to-redefine-their-functionality-5610.html –