Обратная косая черта в Ruby: '\\ \ hline' как строка - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь просто включить строку

 '\\ \hline'

в моей программе.Теперь я использовал одинарные кавычки, поэтому я ожидаю, что

 a = ' \\ \hline'

даст мне то, что я хочу, вместо этого я получу

 irb(main):001:0> a = ' \\ \hline'
 => " \\ \\hline"

Как мне поступить, чтобы получить то, что я хочу, видя, как у меня естьнет представления о неожиданном втором двойном обратном слэше?

edit: аналогично a = "\"

1 Ответ

0 голосов
/ 07 июня 2018

Вам может потребоваться экранировать все обратные слэши:

str = "\\\\ \\hline"
puts str
# => \\ \hline

Обратите внимание, что это также работает, если вы используете строку одинарных кавычек и экранируете только одинарные обратные слэши:

str = '\\\\ \hline'
puts str
# => \\ \hline

итакже, если ваш обратный слеш предшествует чему-то, что может выглядеть как символ, который может быть экранирован:

str = '\\\\ \nline'
puts str
# => \\ \nline

, но это не так, если вы используете двойные кавычки:

str = "\\\\ \nline"
puts str
# => \\ 
# => line

Экранирование все обратная косая черта не обязательна (как правильно указал @mudasobwa), и есть случаи, когда вы можете решить не использовать ее, но IMHO это предпочтительнее, особенно если вы используете строки с двойными кавычками.

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