我正在准备一个将被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方法的输出分配给变量?
谢谢!
inspect 应该完成你想要的.
>> a = %w(a b c)
=> ["a", "b", "c"]
>> a.inspect
=> "[\"a\", \"b\", \"c\"]"
Run Code Online (Sandbox Code Playgroud)