5
2..-1
の範囲オブジェクトが何を意味するのか説明してください。2 .. 1の範囲はどういう意味ですか? (Ruby koans about_arrays.rb)
Rubyの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 このことから、分割ができますなぜ私は理解して答えます。私が理解していないことは、rangeオブジェクトが参照している範囲です。正常範囲のために、私が行うことができます。IRBで実行する場合は、次の出力が得られます
が(1..3).each { |x| puts(x) }
:
1
2
3
=> 1..3e
しかし、(2..-1).each { |x| puts(x) }
が与える:範囲を行いだから何
=> 2..-1
を(2..-1)
?
ありがとう@DragoonWraith。たぶん私は範囲オブジェクトについて間違って考えています。あなたの答えから、その範囲は開始点2(3番目の項目)と最後の-1(最後の項目)です。私が混乱しているのは、分裂の文脈の外でこれが何を意味しているのかということです.2と-1の間の数字は何ですか?なぜ '(2 ..- 1).each'は何も印刷しないのですか? – Will
@ウィル:配列には3つのアイテムしかないので、 '2'と最後のものの間には何もありません。 '2' *は最後のものです。だからあなたは何も見ていないのです。より大きな配列を試そうとすると、物事が見えるはずです。 – KRyan
"2と-1の間の数字は何ですか - なし。 "なぜ(2 ..- 1)それぞれの印刷物はありませんか?" - それが理由です:-) –