Руби странные цитаты - PullRequest
       29

Руби странные цитаты

0 голосов
/ 18 января 2011

извините за плохой английский. Почему Руби цитирует так странно? Или может это ошибка?

irb(main):027:0> p eval "\"    \+     \\+    \\\+     \\\\+    \\\\\+    \"" 

производит

=> "    +     +    +     \\+    \\+    "

или

irb(main):027:0> puts eval "\"    \+     \\+    \\\+     \\\\+    \\\\\+    \""   

1010 * производит *

=> +     +    +     \+    \+

или другой пример

irb(main):067:0> "  \"  " =~ Regexp.new(eval("\"  \\\"  \""))   
=> 0

irb(main):068:0> "  +  " =~ Regexp.new(eval("\"  \\\\+  \""))   
=> 0

Ответы [ 2 ]

2 голосов
/ 18 января 2011

Когда вы пишете \" \+ \\+ \\\+ \\\\+ \", вы получаете " + \+ \+ \\+ ". После этого вы используете eval для выполнения этой строки, которая содержит еще одну строку в двойных кавычках. Вы получите + + + \+.

\\ => \
\x => x (se não для nenhum caso especial, como \n)

0 голосов
/ 18 января 2011

экранирование ruby ​​- это отлично,

eval = оценить / выполнить строку

...