Непоследовательное экранирующее поведение строки одинарных кавычек - PullRequest
2 голосов
/ 29 февраля 2012

Правило экранирования для строки в одинарных кавычках выглядит противоречивым в следующем примере: По каким правилам Ruby экранирует строку в одинарных кавычках?

p str1 = 'a\b\c'
#=> "a\\b\\c" looks fine, I know single quotes don't do escaping
p str2 = 'a\\b\\c'
#=> "a\\b\\c" hmm? It actually escapes

# Trying double quotes
p str3 = "a\b\c" 
#=> Error, \c isn't valid
p str4 = "a\\b\\c"
#=> "a\\b\\c" 

p str1 == str4, str2 == str4
# true, true

1 Ответ

3 голосов
/ 29 февраля 2012

Строки в одинарных кавычках поддерживают только две escape-последовательности:
\' - одинарные кавычки
\\ - одинарные обратные слэши
За исключением этих двух escape-последовательностей, все остальное между одинарными кавычками трактуется буквально.

источник: вики-книги

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...