用于eval的Stringify数组

Mar*_*ter 3 ruby

我正在准备一个将被eval编辑的字符串.该字符串将包含从现有构建的子句Array.我有以下内容:

def stringify(arg)
    return "[ '" + arg.join("', '") + "' ]" if arg.class == Array
    "'#{arg}'"
end

a = [ 'a', 'b', 'c' ]
eval_str = 'p ' + stringify(a)
eval(eval_str)
Run Code Online (Sandbox Code Playgroud)

它打印字符串["a", "b", "c"].

有没有比较惯用的方法呢?Array#to_s不削减它.有没有办法将p方法的输出分配给变量?

谢谢!

Aar*_*nni 8

inspect 应该完成你想要的.

>> a = %w(a b c)
=> ["a", "b", "c"]
>> a.inspect
=> "[\"a\", \"b\", \"c\"]"
Run Code Online (Sandbox Code Playgroud)