Может кто-нибудь подскажет, как я могу напечатать что-то следующим образом "с" двойными кавычками.
"Двойные кавычки"
Может кто-нибудь подскажет, как я могу напечатать что-то следующим образом "с" двойными кавычками.
"Двойные кавычки"
String
экземпляра, содержащего двойные кавычки.
Ответы:
С обратной косой чертой перед двойной кавычкой, которую вы хотите вставить в строку:
let sentence = "They said \"It's okay\", didn't they?"
Сейчас sentence
это:
Они сказали: «Все в порядке», не так ли?
Это называется «экранирование» символа: вы используете его буквальное значение, оно не будет интерпретировано.
В Swift 4 вы также можете использовать """
разделитель для буквального текста, где нет необходимости экранировать:
let sentence = """
They said "It's okay", didn't they?
Yes, "okay" is what they said.
"""
Это дает:
Они сказали: «Все в порядке», не так ли?
Да, «хорошо» - вот что они сказали.
В Swift 5 вы можете использовать расширенные разделители:
Строковые литералы теперь можно выражать с помощью расширенных разделителей . Строковый литерал с одним или несколькими числовыми знаками (#) перед открывающей кавычкой обрабатывает символы обратной косой черты и двойные кавычки как литералы, если за ними не следует одинаковое количество числовых знаков. Используйте расширенные разделители, чтобы не загромождать строковые литералы, которые содержат много двойных кавычек или символов обратной косой черты с дополнительными escape-символами.
Теперь ваша строка может быть представлена как:
let sentence = #"They said "It's okay", didn't they?"#
И если вы хотите добавить переменную в свою строку, вы также должны добавить #
после обратной косой черты:
let sentence = #"My "homepage" is \#(url)"#
Для полноты из документов Apple :
Строковые литералы могут включать следующие специальные символы:
- Экранированные специальные символы \ 0 (нулевой символ), \ (обратная косая черта), \ t (горизонтальная табуляция), \ n (перевод строки), \ r (возврат каретки), \ "(двойная кавычка) и \ '(одинарная кавычка)
- Произвольный скаляр Unicode, записываемый как \ u {n}, где n - шестнадцатеричное число из 1–8 цифр, значение которого равно допустимой кодовой точке Unicode.
это означает, что помимо возможности экранировать символ с помощью обратной косой черты, вы можете использовать значение Unicode. Следующие два утверждения эквивалентны:
let myString = "I love \"unnecessary\" quotation marks"
let myString = "I love \u{22}unnecessary\u{22} quotation marks"
myString
теперь будет содержать:
Люблю "ненужные" кавычки
В соответствии с вашими потребностями вы можете использовать один из 4 следующих шаблонов для печати Swift String
, содержащего двойные кавычки.
Строковые литералы могут включать специальные символы, такие как \"
:
let string = "A string with \"double quotes\" in it."
print(string) //prints: A string with "double quotes" in it.
Строковые литералы могут включать скалярное значение Unicode, записанное как \u{n}
:
let string = "A string with \u{22}double quotes\u{22} in it."
print(string) //prints: A string with "double quotes" in it.
Язык программирования Swift / Строки и символы гласит:
Поскольку многострочные строковые литералы используют три двойные кавычки вместо одной, вы можете включить двойную кавычку (
"
) внутри многострочного строкового литерала, не экранируя его.
let string = """
A string with "double quotes" in it.
"""
print(string) //prints: A string with "double quotes" in it.
Язык программирования Swift / Строки и символы гласит:
Вы можете поместить строковый литерал в расширенные разделители, чтобы включить специальные символы в строку, не вызывая их эффекта. Вы
"
заключаете строку в кавычки ( ) и заключаете ее в цифровые знаки (#
). Например, при печати строкового литерала#"Line 1\nLine 2"#
выводится escape-последовательность перевода строки (\n
), а не строка через две строки.
let string = #"A string with "double quotes" in it."#
print(string) //prints: A string with "double quotes" in it.