我知道我可以使用eval
以下方式获取字符串:
"".inspect == "\"\"" # true
eval("\"\"") == "" # true
但除此之外eval
,还有另一种方法吗?
我知道我可以使用eval
以下方式获取字符串:
"".inspect == "\"\"" # true
eval("\"\"") == "" # true
但除此之外eval
,还有另一种方法吗?
在您的情况下,""
是一个空字符串。"\"\""
完全是另一回事:一个字符串,当它被馈送到某个东西时,会产生你的""
空字符串。在这种情况下,就是 Ruby 解释器。换句话说,"\"\""
dump专门用于由 Ruby 解释器进行评估,无论是在eval
、instance_eval
、class_eval
或ruby
命令行中,还是irb
、或什么...
即使有另一种方法,这种方法最终也只能模拟 Ruby 解释器。所以我敢说,不,用另一种方式来做没有太大意义。
但是除了eval,还有别的方法吗?
是的,请看下面YAML
:
require 'yaml'
YAML.load("\"\"") # => ""
YAML.load("\"\"") == "" # => true