Я знаю, как бы это сделать на C++, но в Ruby я не уверен. В основном это структура, что я работаю с (за исключением, что вместо целых чисел, у меня есть 2 элемента массива, содержащиеся в массиве данных .)Этот массив Array.new в цикле создает утечку памяти?
data = [ 1, 2, 3 ]
while true do
wrong = Array.new
data.each do |d|
print "Guess: "
guess = gets
if guess.strip.to_i == d
puts "Correct!"
else
puts "Sorry, the right answer is #{ d }."
wrong << d
end
end
if wrong.length == 0
break
else
data = wrong
end
end
Могу ли я создать утечку памяти, Array.new в каждом цикле? Есть ли более эффективный альтернативный подход?
Заранее благодарен!
Я просто хочу убедиться, что я понимаю, что вы пытаетесь сделать. Вы хотите начать с списка номеров и догадаться, до тех пор, пока они не угадают каждый номер, затем не закончите или это что-то еще? – lwassink
Пример кода - это именно то, что позволяет пользователю добираться до конца. Но основной вопрос: у меня есть контейнер, я беру некоторые вещи из него последовательно и продолжаю делать это до тех пор, пока он не станет пустым. Подход, который я принимаю, - это то, что нужно сохранить, до следующего цикла в другой контейнер. С каждым циклом я должен поменять эти контейнеры. Я знаю, как это сделать на C++, но в Ruby это немного непрозрачно для меня. Благодаря! – Dribbler