2011-11-12 16 views
3
a = [2,4,5] 
a.count-1 => 2 
a.count - 1 => 2 

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

a.count -1 => 0 

は、この動作を何の原因は? aが整数で配列ではないのはなぜですか?

また、メソッド名とそれに続くカッコ(パラメータ)の間にはスペースを入れてはいけません。何故ですか?

ルビー1.9.2

答えて

6

方法はこのなし括弧で呼び出すことができるので:

a.count - 1 

手段

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

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

+2

「a.count -1」の場合、 '-'は依然としてメソッドです。こちらをご覧ください:http://www.rubyinside.com/rubys-unary-operators-and-how-to-redefine-their-functionality-5610.html –

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

a.count -1a.count(-1)と同等です。

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

a = [-1, 3, 4] 
a.count -1 => 1 
関連する問題