我知道我可以使用eval
来取回字符串,如下所示:
"".inspect == "\"\"" # true
eval("\"\"") == "" # true
但除了eval
之外,还有另外一种方法吗?
答案 0 :(得分:2)
在您的情况下,""
是一个空字符串。 "\"\""
是完全不同的东西:一个字符串,当它被送到某个东西时,会产生你的""
空字符串。在这种情况下,这个东西就是Ruby解释器。换句话说,"\"\""
转储具体旨在由Ruby解释器,eval
,instance_eval
,class_eval
或{{ 1}}命令行,或ruby
,或者......
即使有另一种方法,这种方式最终只会模仿Ruby解释器。所以我敢说,不,以另一种方式做到这一点并没有多大意义。
答案 1 :(得分:1)
但除了eval之外,还有另一种方法吗?
是的可能,请使用YAML
:
require 'yaml'
YAML.load("\"\"") # => ""
YAML.load("\"\"") == "" # => true