Руби странные цитаты
Извините за плохой английский. Почему Руби цитирует так странно? Или может это ошибка?
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 = оценить / выполнить строку