В настоящее время я изучаю Ruby и нажимаю какое-то поведение, которое я не совсем понимаю. В приведенном ниже примере кода у меня есть два до цикла, каждый по своему методу. При выполнении until_test
он выводит цикл 10 20 10 20 10 20
навсегда, но при выполнении second_until_test
он ведет себя так, как я ожидаю, выводя только 10 20
. Похоже, что по какой-то причине код теперь, я не могу изменять переменные, переданные как параметры. Я знаю, что ответ на этот вопрос, вероятно, очень прост, но я не смог понять это или найти ответ здесь после поиска. Каков правильный способ успешно выполнить параметры, как я пытаюсь сделать в until_test
?Невозможно получить доступ к методу переменной внутри, переданному как параметр
Заранее благодарен!
def until_test
num = 10
until num == 20
do_this(num)
end
end
def second_until_test
num = 10
until num == 20
puts num
num = 20
puts num
end
end
def do_this(variable)
puts variable
variable = 20
puts variable
end
Возможный дубликат ['pass parameter by reference' в Ruby?] (Http://stackoverflow.com/questions/161510/pass-parameter-by-reference-in-ruby) – jcm