Строка представляет собой последовательность символов, например, или . Строки Swift представлены типом. Доступ к содержимому можно получить различными способами, в том числе в виде набора значений."hello, world"
"albatross"
String
String
Character
Swift String
и Character
типы предоставляют быстрый, Unicode-совместимый способ работы с текстом в вашем коде. Синтаксис для создания и работы со строками является легким и читаемым, а синтаксис строкового литерала аналогичен C. Конкатенация строк так же проста, как объединение двух строк с +
оператором, а изменяемость строк управляется выбором между константой или переменной, как и любое другое значение в Swift. Вы также можете использовать строки для вставки констант, переменных, литералов и выражений в более длинные строки, в процессе, известном как интерполяция строк. Это облегчает создание пользовательских строковых значений для отображения, хранения и печати.
Несмотря на эту простоту синтаксиса, String
тип Swift является быстрой, современной реализацией строк. Каждая строка состоит из независимых от кодировки символов Unicode и обеспечивает поддержку доступа к этим символам в различных представлениях Unicode.
ЗАМЕТКА
String
Тип Swift соединяется сNSString
классом Foundation . Основа также распространяетсяString
на раскрытие методов, определенныхNSString
. Это означает, что если вы импортируете Foundation, вы можете получить доступ к этимNSString
методамString
без приведения.
Для получения дополнительной информации об использовании String
с Основой и Какао, посмотрите Соединение между Строкой и NSString .
Строковые литералы
Вы можете включить предопределенные String
значения в свой код в виде строковых литералов . Строковый литерал - это последовательность символов, заключенная в двойные кавычки ( "
).
Используйте строковый литерал в качестве начального значения для константы или переменной:
let someString = "Some string literal value"
Обратите внимание , что Swift выводит тип String
для someString
постоянной , поскольку она инициализируется с буквальным значением строки.
Многострочные строковые литералы
Если вам нужна строка, которая занимает несколько строк, используйте многострочный строковый литерал - последовательность символов, заключенная в три двойные кавычки:
let quotation = """
The White Rabbit put on his spectacles. "Where shall I begin,
please your Majesty?" he asked.
"Begin at the beginning," the King said gravely, "and go on
till you come to the end; then stop."
"""
Многострочный строковый литерал включает все строки между его открывающими и закрывающими кавычками. Строка начинается в первой строке после открывающих кавычек ( """
) и заканчивается в строке перед закрывающими кавычками, что означает, что ни одна из строк ниже не начинается и не заканчивается разрывом строки:
let singleLineString = "These are the same."
let multilineString = """
These are the same.
"""
Когда ваш исходный код содержит разрыв строки внутри многострочного строкового литерала, этот разрыв строки также появляется в значении строки. Если вы хотите использовать разрывы строк, чтобы облегчить чтение исходного кода, но не хотите, чтобы разрывы строк были частью значения строки, напишите \
в конце этих строк обратную косую черту ( ):
let softWrappedQuotation = """
The White Rabbit put on his spectacles. "Where shall I begin, \
please your Majesty?" he asked.
"Begin at the beginning," the King said gravely, "and go on \
till you come to the end; then stop."
"""
Чтобы сделать многострочный литерал, начинающийся или заканчивающийся переводом строки, напишите пустую строку в качестве первой или последней строки. Например:
let lineBreaks = """
This string starts with a line break.
It also ends with a line break.
"""
Многострочная строка может иметь отступ для соответствия окружающему коду. Пробел перед закрывающими кавычками ( """
) сообщает Swift, какой пробел игнорировать перед всеми остальными строками. Однако, если вы пишете пробелы в начале строки , в дополнение к тому , что до закрытия кавычек, что пробелы ввключены.
В приведенном выше примере, несмотря на то, что весь многострочный строковый литерал имеет отступ, первая и последняя строки в строке не начинаются с пробела. Средняя линия имеет больше отступа, чем закрывающие кавычки, поэтому она начинается с этого дополнительного отступа в четыре пробела.
Специальные символы в строковых литералах
Строковые литералы могут включать следующие специальные символы:
- Экранированные специальные символы
\0
(нулевой символ),\\
(обратная косая черта),\t
(горизонтальная табуляция),\n
(перевод строки),\r
(возврат каретки),\"
(двойная кавычка) и\'
(одинарная кавычка) - Произвольное скалярное значение Unicode, записываемое как
\u{
n}
, где n - шестнадцатеричное число от 1 до 8 цифр (Unicode обсуждается в Unicode ниже)
Код ниже показывает четыре примера этих специальных символов. wiseWords
Константа содержит два сбежавших двойные кавычки. Константы dollarSign
, blackHeart
и, sparklingHeart
демонстрируют скалярный формат Unicode:
let wiseWords = "\"Imagination is more important than knowledge\" - Einstein"
// "Imagination is more important than knowledge" - Einstein
let dollarSign = "\u{24}" // $, Unicode scalar U+0024
let blackHeart = "\u{2665}" // ♥, Unicode scalar U+2665
let sparklingHeart = "\u{1F496}" //
0 комментариев