Если у вас есть диапазон диапазонов, например [1..4, 7..11, 14..18, 21..25, 28..28]
, какие параметры у меня есть для итерации по элементам?Как выполнить итерацию по массиву диапазонов в Ruby?
я мог бы сделать
ranges.each do |range|
range.each do |date|
puts "Do work on February #{date}"
end
end
который немного многословным, или я мог бы сделать
dates = ranges.map(&:to_a).flatten
dates.each do |date|
puts "Do work on February #{date}"
end
, которые могли бы использовать много памяти, если диапазоны велики.
Есть ли альтернативы?
Есть ли шанс диапазонов перекрытие? –
Они не перекрываются в моем сценарии, но если бы они это сделали, я бы хотел, чтобы это было сделано один раз. –
В этом случае ваш первый пример кажется мне довольно чистым. Мне будет интересно узнать, есть ли у кого-то еще более простые вещи. –