用于传输用户输入代码

时间:2018-02-17 20:24:26

标签: ruby string interpolation

我想知道是否有办法设置带插值的字符串,以使字符串中的代码多次运行。 (我知道我可以把代码放在一个循环中,但是为了想知道)。

例如,我想要以下代码:

x = "#{puts 'a'}"

3.times do
   x
end

获得输出:

a
a
a

我发现这个问题是在初始化时解决了插值问题。但是有没有办法设置一个字符串,以便可以重用插值?

1 个答案:

答案 0 :(得分:1)

不会为此目的进行字符串插值。字符串应该表达语义,而不是行为。不要在插值字符串中调用puts

您仍然可以执行以下操作:

def x
  puts 'a'
end

3.times do
  x
end