У меня есть следующий код в одном из моих личных проектов:
def allocate(var, value) # Allocate the variable to the next available spot.
@storage.each do |mem_loc|
if mem_loc.free?
mem_loc.set(var, value) # Set it then break out of the loop.
break
end
end
end
Каждый элемент в массиве хранения - это объект, который отвечает бесплатно?и установить.То, что я пытаюсь сделать, это циклически проходить по массиву в поисках следующего свободного (пустого) объекта для установки переменной.Моя проблема в том, что это просто циклически перебирает все объекты и устанавливает их все.Я неправильно использую функцию прерывания?
Тестируя ее, я вызываю следующее:
store.allocate(:a, 10)
store.allocate(:b, 20)
Так что store [1] должен быть установлен в: b и 20. Но когда я выводусодержимое, это значение равно 10, как и остальная часть массива.