Каковы правила для пробелов в Ruby? - PullRequest
3 голосов
/ 12 ноября 2011
a = [2,4,5]
a.count-1 => 2
a.count - 1 => 2

Но

a.count -1 => 0

Что вызывает такое поведение? Почему этого не происходит, если a является целым числом (а не массивом)?

Кроме того, я заметил, что не должно быть пробела между именем метода и круглыми скобками (для параметров). Почему это так?

Рубин 1.9.2

Ответы [ 3 ]

6 голосов
/ 12 ноября 2011

Поскольку методы можно вызывать без скобок, это:

a.count - 1

Средство вычитает 1 из a.count, тогда как

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

Средство вызывает метод a.count с -1 в качестве аргумента.Это не происходит, когда a является целым числом, потому что у целых чисел нет метода count.Вы просто должны быть осторожны при вводе.

1 голос
/ 12 ноября 2011

a.count -1 эквивалентно a.count(-1).

Возвращает количество раз, которое -1 включено в ваш массив.

a = [-1, 3, 4]
a.count -1 => 1
1 голос
/ 12 ноября 2011
a.count - 1 # you are subtracting 
a.count -1  # you are doing a.count(-1)

Вы уверены, что не можете поставить пробел между именем метода и паренсом?Я просто сделал это в ruby ​​1.9.2, и он отлично работает.Например

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