範囲オブジェクトの2..-1
意味を誰かに説明してもらえますか。
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
次のWebサイト(別の回答から見つかりました)では、範囲がスライスでどのように機能するかを説明しています 。Gary Wright、文字列/配列スライス これから、分割によって回答が得られる理由がわかります。私が理解していないのは、範囲オブジェクトが参照している範囲です。通常の範囲では、次のことができます。
(1..3).each { |x| puts(x) }
これは、irbで実行すると次の出力を提供します。
1
2
3
=> 1..3e
ただし、次のように(2..-1).each { |x| puts(x) }
なります。
=> 2..-1
では、範囲(2..-1)
はどういう意味ですか?