Почему этот символ ESC на самом деле не работает в Ruby?

код:

file.write 'objectclass: groupOfUniqueNames\n'

Достаточно странно \n на самом деле печатается... Что не так здесь?

7
задан Zombies 3 February 2010 в 19:56
поделиться

3 ответа

Одиночные строки в Ruby более "буквальны", чем двойные кавычки; переменные не оцениваются, и большинство экранирующих символов не работают, за исключением \\ и \' для включения буквенных обратных слэшей и одиночных кавычек, соответственно.

Двойные кавычки - это то, что вам нужно:

file.write "objectclass: groupOfUniqueNames\n"
7
ответ дан 6 December 2019 в 15:21
поделиться

Вы используете одинарные кавычки. Единственные escape-последовательности, разрешенные в одинарных кавычках: \\ для \ и \ ' для ' . Используйте двойные кавычки, и \ n будет работать должным образом.

3
ответ дан 6 December 2019 в 15:21
поделиться

Только в одной кавычке разрешены две экранирующие последовательности: \' (для одной кавычки) и \\ (для одного обратного слеша). Если вы хотите использовать другие экранирующие последовательности, такие как \n (для новой строки), вы должны использовать строку с двойной кавычкой.

Итак, это сработает:

file.write "objectclass: groupOfUniqueNames\n"

Хотя лично я бы просто использовал put здесь, где уже добавлена новая строка:

file.puts 'objectclass: groupOfUniqueNames'
4
ответ дан 6 December 2019 в 15:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: