Ruby 如何从检查结果中获取字符串?

Ruby 如何从检查结果中获取字符串?,ruby,Ruby,我知道我可以使用eval获取字符串,如下所示: "".inspect == "\"\"" # true eval("\"\"") == "" # true 但是除了eval,还有别的方法吗?在您的例子中,“是一个空字符串“\”\”是完全不同的东西:一个字符串,当它被馈送到某个东西时,会产生您的“空字符串。在本例中,它是Ruby解释器。换句话说,“\”\“\”转储专门由Ruby解释器开发,包括eval、instance\u eval、class\u eval、或Ruby命令行、或irb等

我知道我可以使用
eval
获取字符串,如下所示:

"".inspect  == "\"\"" # true
eval("\"\"") == ""    # true
但是除了
eval
,还有别的方法吗?

在您的例子中,
是一个空字符串<代码>“\”\”是完全不同的东西:一个字符串,当它被馈送到某个东西时,会产生您的
空字符串。在本例中,它是Ruby解释器。换句话说,
“\”\“\”
转储专门由Ruby解释器开发,包括
eval
instance\u eval
class\u eval
、或
Ruby
命令行、或
irb
等等

即使有另一种方法可以做到这一点,这种方法最终也只能模拟Ruby解释器。所以我敢说,不,换一种方式做没有多大意义

但除了评估,还有其他方法吗?

是的,可能,请使用以下方法查看:


你到底想干什么?你为什么要这么做?这没有多大意义。
String::class\u eval{“\”\”}
可能会做你想做的事。@theTinMan我想做的就是从String
“\”
获取
。我有一些数据是字符串检查结果的结果,我需要将它们还原回原始字符串。
#inspect
在您的情况下,仅在转义字符串周围加上双引号,就像
#dump
一样。可能会重复
require 'yaml'

YAML.load("\"\"") # => ""
YAML.load("\"\"") == "" # => true