如何设置
ruby中每个循环的起始偏移量?
我希望循环从[3]而不是[0]开始.我该如何设定?
我希望循环从[3]而不是[0]开始.我该如何设定?
a = [ab,cd,ef,gh,hi,jk] a.each do |i| #some stuff end
解决方法
另一种可能更直接可读的可能性是使用
Array#drop
:
a.drop(3).each do |i| # do something with item i end
现在,如果结合从Enumerable
继承的其他方法,这真的很发光,所以有可能有更好的选择,你的命令式每个循环.假设您要过滤提取的切片,然后进行变换:
a = [0,1,2,3,4,5,6,7] a.drop(3).select(&:even?).map { |x| x * 2 } # => [8,12]
或者说要打印所有值的列表:
a = ["1","2","3","4","5"] puts a.drop(3).join("\n")
输出:
4 5