2015-09-30 89 views
4

我絆了奇怪的現象,而在範圍內播放,預計:紅寶石第一山脈和最後一個問題

(1...1).count 
# => 0 
(1...1).first(1) 
# => [] 
(1...1).last(1) 
# => [] 
(1...1).to_a 
# => [] 

(1...1).first 
# => 1 
(1...1).last 
# => 1 

難道我錯過了什麼,或者這是預期的行爲?

+0

這可能是有意的。但是......看看Ruby的規格。 :) – muichkine

+0

它爲第一個/最後一個方法使用參數時提供預期的輸出。有關解釋請查看@ ndn的帖子。 – 5208760

回答

5
+1

謝謝,好吧,我看到它甚至在評論中聲明https://github.com/ruby/ruby/blob/a19830c42ce839ac1b4557cc30fe78757447f66c/range.c#L889,但不是很直觀,雖然;) – jethroo

+3

國際海事組織,它是由設計打破。 'begin'應該返回開始對象,'first'應該像'Array#first'和'Enumerable#first'一樣(對'end' /'last'也是一樣的)。 – Stefan