5
請有人能解釋一下2..-1
的範圍對象的含義。2 ..- 1的範圍是什麼意思? (Ruby koans about_arrays.rb)
紅寶石koans已about_arrays.rb如下:
def test_slicing_with_ranges
array = [:peanut, :butter, :and, :jelly]
assert_equal [:peanut, :butter, :and], array[0..2]
assert_equal [:peanut, :butter], array[0...2]
assert_equal [:and, :jelly], array[2..-1]
end
下面的網站(從另一個答案找到)解釋的範圍如何與切片工作: Gary Wright, string/array slices 由此,我明白了爲什麼分給回答它的確如此。我不明白的是範圍對象所指的範圍。對於一個正常的範圍內,我可以這樣做:
(1..3).each { |x| puts(x) }
當IRB執行其給出以下的輸出:
1
2
3
=> 1..3e
然而,(2..-1).each { |x| puts(x) }
給出:
=> 2..-1
那麼,是什麼範圍(2..-1)
是什麼意思?
謝謝@DragoonWraith。也許我在錯誤地考慮範圍對象。從你的答案,它的範圍開始2(第三項)和結束-1(最後一項)。我想,讓我感到困惑的是在分裂的背景之外,這意味着什麼:2和-1之間的數字是什麼?爲什麼'(2 ..- 1).each'什麼都不打印? – Will
@ will:數組中只有三個元素,所以'2'和最後一個之間沒有任何內容; '2' *是最後一個。這就是爲什麼你沒有看到任何東西。如果你嘗試更大的陣列,你應該看到的東西。 – KRyan
「2和-1之間有什麼數字」 - 無。 「爲什麼不(2 ..- 1)。每個都打印什麼?」 - 這就是爲什麼;-) –