请有人解释一下 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
以下网站(从另一个答案中找到)解释了范围如何与切片一起使用: 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)
是什么意思?
最佳答案
负索引表示“从数组末尾开始计数”。所以 -1
是数组中的最后一项。 2..-1
表示从第三项到最后一项。
关于ruby - 2..-1 的范围是什么意思? (Ruby koans about_arrays.rb),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12098956/