Có, bạn có thể
some_array[offset..-1].each_with_index{|item, index| some_func(item, index) }
some_array[offset..-1].each_with_index{|item, index| some_func(item, index+offset) }
some_array[offset..-1].each_with_index{|item, index| index+=offset; some_func(item, index) }
UPD
Ngoài ra, tôi nên lưu ý rằng nếu bù đắp nhiều hơn kích thước Mảng của bạn, nó sẽ xảy ra lỗi. Bởi vì:
some_array[1000,-1] => nil
nil.each_with_index => Error 'undefined method `each_with_index' for nil:NilClass'
Chúng ta có thể làm gì ở đây:
(some_array[offset..-1]||[]).each_with_index{|item, index| some_func(item, index) }
Hoặc để xác thực trước phần bù:
offset = 1000
some_array[offset..-1].each_with_index{|item, index| some_func(item, index) } if offset <= some_array.size
Đây là một chút hacky
CẬP NHẬT 2
Theo như bạn đã cập nhật câu hỏi của mình và bây giờ bạn không cần bù đắp mảng, nhưng bù đắp chỉ mục để giải pháp @sawa sẽ hoạt động tốt cho bạn