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

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

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

производит

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

или же

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

производит

=> +     +    +     \+    \+

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

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

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

2 ответа

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

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

Рубиновый побег совершенно хорош,

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

Другие вопросы по тегам