如何each在ruby中设置循环的起始偏移量?我希望循环从而a[3]不是开始a[0].我该怎么设置?
a = [ab, cd, ef, gh, hi, jk]
a.each do |i|
#some stuff
end
Run Code Online (Sandbox Code Playgroud)
Nik*_* B. 41
另一种可能更直接和可读的可能性是使用Array#drop:
a.drop(3).each do |i|
# do something with item i
end
Run Code Online (Sandbox Code Playgroud)
现在,如果与继承自的其他方法相结合,这真的很闪耀Enumerable,所以很有可能是你的命令each循环的更好的替代方案.假设您要过滤提取的切片并在之后进行转换:
a = [0,1,2,3,4,5,6,7]
a.drop(3).select(&:even?).map { |x| x * 2 }
# => [8, 12]
Run Code Online (Sandbox Code Playgroud)
或者说您要打印所有值的列表:
a = ["1", "2", "3", "4", "5"]
puts a.drop(3).join("\n")
Run Code Online (Sandbox Code Playgroud)
输出:
4
5
Run Code Online (Sandbox Code Playgroud)
继承自函数式编程的这些特性使Ruby如此强大:)
Bal*_*ick 21
使用each一个子部分的数组.在下面的示例中,从第四个元素到结尾:
a[3..-1].each do |i|
#some stuff
end
Run Code Online (Sandbox Code Playgroud)