我发现自己需要像Python一样的东西
ary = [1,2,3,4,5,6,7,8]
ary[2:] #=> [3,4,5,6,7,8]
现今的时候这总是发生。
解决方案总是变得复杂而且难看。我想知道是否有更优雅的解决方案存在,因为我的解决方案不值得展示。
2.1.0 :019 > ary.drop(2)
=> [3, 4, 5, 6, 7, 8]
Enumerable
,甚至包括惰性枚举器](http://ruby-doc.org/core-2.1.1/Enumerator/Lazy.html#method-i-drop)。要执行相反的操作,有`take(n)`方法。还提供了`drop_while`和`take_while`方法。 - Matheus Moreira你可以写:
ary[2..-1]
# => [3,4,5,6,7,8]
-1
是数组中最后一个元素的索引,请查看Array#[]
文档以获得更多信息。
Ruby中更好的选择是使用Array#drop
方法:
ary.drop(2)
# => [3,4,5,6,7,8]
ary[2..-1]
。 - Cary Swoveland(2..-1).each
)不符合预期行为。 - Neil Slatern
个元素,并且可以修改arr
,你可以使用front = arr.shift(n)
。一个不太理想的替代方案是last(arr.size-n)
来实现drop(n)
的功能。 - Cary SwovelandArray#[]
也称为Array#slice
:ary [2..-1]
可写为ary.slice(2..-1)
。 - Cary Swoveland