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