-1

我知道我可以使用eval以下方式获取字符串:

"".inspect  == "\"\"" # true
eval("\"\"") == ""    # true

但除此之外eval,还有另一种方法吗?

4

2 回答 2

2

在您的情况下,""是一个空字符串。"\"\""完全是另一回事:一个字符串,当它被馈送到某个东西时,会产生你的""空字符串。在这种情况下,就是 Ruby 解释器。换句话说,"\"\""dump专门用于由 Ruby 解释器进行评估,无论是在evalinstance_evalclass_evalruby命令行中,还是irb、或什么...

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

于 2013-06-24T02:15:09.280 回答
1

但是除了eval,还有别的方法吗?

是的,请看下面YAML

require 'yaml'

YAML.load("\"\"") # => ""
YAML.load("\"\"") == "" # => true
于 2013-06-24T04:54:49.977 回答