В этом коде:
s = "#{a = 2; b = 3; a * b}" # =>"6"
a # => "2"
локальные переменные a
и b
создаются в рамках интерполяции строки и могут быть доступны вне интерполяции строки, поскольку интерполяция строки не является блоком, несмотря нафигурные скобки.
Я хотел бы создать локальные переменные в рамках интерполяции строк, которые необходимы только там, а не в другом месте кода, и которые следует удалять после интерполяции строк, чтобы минимизировать побочные эффекты и потенциальные конфликты переменных.
Я пытался создать блок кода, чтобы добиться локальности переменных, но безуспешно:
s = "#{{a = 2; b = 3; a * b}}"
То же самое с do
... end
.
s = "#{do a = 2; b = 3; a * b; end}"