5
爲什麼這兩個等價物?爲什麼(10..20).last與(10 ... 20)相同.last
(10..20).last #=> 20
(10...20).last #=> 20
這聽起來像Ruby 'Range.last' does not give the last value. Why?重複,但答案對這個問題簡單地說,它的設計。爲什麼它是這樣設計的? ..
和...
當的值與其他值不同時,返回相同的值的目的是什麼?
好的,答案就是簡單地說,這是設計。所以我的問題,然後我會更新上面這個,爲什麼這是由設計?爲什麼這不一致? – 2014-09-19 15:13:50
這並不矛盾。最後返回範圍中的最後一個對象。在這兩種情況下,範圍的開始爲10,最後爲20. 你真正想要的是(10 ... 20).max#=> 19 .last和.last(count)是不同的方法和行爲有所不同。 – 2014-09-19 15:16:30
不要以爲(1..3)創建一組從1到3的數字,認爲它是從1開始創建一個Range對象,並以包含行爲結束於3。然後(1 ... 3)是具有排他行爲的相同對象。兩者具有相同的最後值,只是不同的行爲。 – 2014-09-19 15:19:12