Установите результат процедуры равным old_var
, чтобы он объявлялся в той же области, где использовался.
old_var =
@sandbox.function() do |resp|
resp.var.to_f
end
То же самое для new_var
:
new_var =
@sandbox.function() do |resp|
resp.var.to_f
end
Как установить, чтобы локальная переменная, объявленная во вложенном методе, находилась в области действия родительского метода?
Отвечая на вопрос в заголовке: это невозможно.
Если вам необходимо выполнить некоторые действия перед возвратом значения из вложенного блока, используйте break
:
value =
@sandbox.function() do |resp|
foo = 42
# do something else
break foo
end