我知道我可以使用eval
來獲取字符串返回象下面這樣:如何從檢查結果中獲取字符串?
"".inspect == "\"\"" # true
eval("\"\"") == "" # true
但除此之外eval
,是否有另一種方式來做到這一點?
我知道我可以使用eval
來獲取字符串返回象下面這樣:如何從檢查結果中獲取字符串?
"".inspect == "\"\"" # true
eval("\"\"") == "" # true
但除此之外eval
,是否有另一種方式來做到這一點?
就你而言,""
是一個空字符串。 "\"\""
是完全別的東西:一個字符串,當它被饋送到某個東西時,會產生你的空字符串""
。而在這種情況下,就是Ruby解釋器。換句話說,"\"\""
轉儲專門旨在由Ruby解釋器來eveluated,wheter在eval
,instance_eval
,class_eval
,或ruby
命令行,或irb
,還是什麼......
即使有另一種方式來這樣做只會導致模仿Ruby解釋器。所以我敢說,不,做另一種方式沒有什麼意義。
很高興知道! :) –
但除了eval,還有另一種方法可以做到嗎?
是可能的,下面看一下使用YAML
:
require 'yaml'
YAML.load("\"\"") # => ""
YAML.load("\"\"") == "" # => true
你到底想幹什麼?你爲什麼需要這樣做?這沒有多大意義。 –
'String :: class_eval {「\」\「」}'可能會做你想做的。 – bdares
@theTinMan例如,我想要從字符串'「\」\「」'中獲取'「」'。我有一些數據是字符串檢查結果的結果,我需要將它們還原爲orignal字符串。 – xdazz