Rubyのスペースのルールは何ですか?

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

しかし

a.count -1 => 0

この現象の原因は何ですか? aが整数で配列ではないのはなぜですか?

また、私はメソッド名とそれに続く括弧の間にスペースがあってはならないことに気づいた。何故ですか?

Ruby 1.9.2

3
追加された
ビュー: 1

3 答え

メソッドはカッコなしで呼び出すことができるので、次のようになります。

a.count - 1

平均は a.count から1を減算します。

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

-1 を引数としてメソッド a.count を呼び出します。整数に count メソッドがないため、 a が整数の場合は発生しません。入力する際に​​は注意する必要があります。

6
追加された
a.count -1 の場合、 - は依然としてメソッドです。こちらをご覧ください: ruby​​inside.com /…
追加された 著者 Alex Peattie,

a.count -1 is equivalent to a.count(-1).

-1が配列に含まれる回数を返します。

a = [-1, 3, 4]
a.count -1 => 1
1
追加された
a.count - 1 # you are subtracting 
a.count -1  # you are doing a.count(-1)

メソッド名と括弧の間にスペースを入れることはできませんか?私はちょうどルビー1.9.2でそれをやって、それは正常に動作します。例えば

a.product([3])
a.product ([3])
1
追加された