2013-06-24 5 views
-1

는 내가 아래와 같이 다시 문자열을 얻을 수 eval을 사용할 수 있습니다 알고 검사 결과에서 문자열을 가져 오는 방법은 무엇입니까?

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

그러나 eval 외에

, 그것을 할 수있는 또 다른 방법이?

+3

을 당신이 정말로 뭘하려는거야? 왜 이럴 필요가 있니? 그것은별로 의미가 없습니다. –

+0

'String :: class_eval { "\"\ ""}'원하는 것을 할 수 있습니다. – bdares

+0

@theTinMan 내가하고자하는 것은 문자열''\ "\" "'에서''"'을 얻는 것입니다. 문자열의 검사 결과로 얻은 데이터가 있는데, 그 문자열을 원래 문자열로 되 돌리는 것이 필요합니다. – xdazz

답변

2

귀하의 경우 ""은 빈 문자열입니다. "\"\""은 완전히 다른 것입니다. 무언가에 먹이를 주면 문자열이 "" 빈 문자열이됩니다. 이 경우 Ruby 인터프리터입니다. 즉, "\"\"" 덤프는 특히eval, instance_eval, class_eval, 또는 ruby 명령 행 또는 irb, 또는 무엇 ...에

다른 방식이있는 경우에도 처리 여부, 루비 인터프리터에서 eveluated하기위한 것 입니다 그렇게하면 Ruby 인터프리터를 에뮬레이션하는 방식으로 끝납니다. 그래서 감히 말할 수 있습니다. 아니, 다른 방식으로하는 것이 너무 의미가 없습니다.

+0

알아두면 좋습니다 !! :) –

1

평가판 외에도 다른 방법이 있습니까?

예 가능 YAML를 사용하여 아래에 보이는 :

require 'yaml' 

YAML.load("\"\"") # => "" 
YAML.load("\"\"") == "" # => true 
관련 문제