Для работы с текстом применяются два типа данных: Character и String. Character представляет отдельный символ, а String - строку из нескольких символов. При этом надо отметить, что String - это не просто набор объектов Character, это отдельный тип, который по функциональности отличается.
Самый простой способ определения строки и символов представляет использование строковых литералов - значений в двойных кавычках:
var a: Character = "a" var hello: String = "hello"
В отличие от строки в переменную типа Character
мы не можем засунуть больше одного символа, то есть в следующем случае мы столкнемся с ошибкой:
var a: Character = "abc"
Строки могут быть пустыми, то есть по сути не содержать ничего, но при этом быть инициализированными:
var str1: String = "" var str2: String = String()
Пустая строка создается при помощи присвоения ""
или при помощи инициализатора String()
Строка может содержать специальные символы, которые называются управляющими последовательностями или эскейп-последовательностями. Основные из них:
\n
: перевод на новую строку
\t
: табуляция
\"
: кавычка
\\
: обратный слеш
Например, мы хотим определить многострочный текст, в котором будут использоваться кавычки и обратные слеши:
let text = "ООО \"Рога и копыта 777\" \nГен. директор: Иванов" print(text)
XCode Playground интерпретирует данную строку следующим образом:
ООО "Рога и копыта 777" Ген. директор: Иванов
Но, начиная с версии языка 4.0, для создания многострочных строк можно заключать строку в тройные кавычки """:
let text = """ ООО "Рога и копыта 777" Ген. директор: Иванов """ print(text)
Результат будет тот же, что и в примере выше. Кроме того, внутри многострочных строк кавычки не надо экранировать с помощью обратного слеша.
Для преобразования значений других типов данных к строке надо передать преобразуемое значение в инициализатор:
var number: Int = 22 var str: String = String(number) // "22"
Для конкатенации (объединения) строк используется оператор +
(плюс):
var str: String = "" // "" str += "hello" // "hello" str = str + " world" // "hello word"
Интерполяция представляет собой объединение в строку различных литералов и значений, которые могут представлять другие типы данных. Для интерполяции объекты других типов данных заключаются в скобки, перед которыми ставится слеш:
var age: Int = 22 var str: String = "Age: \(age)" // "Age: 22" var weight: Double = 70.58 str = "Age: \(age) and weight: \(weight)" // "Age: 22 and weight: 70.58"
Также интерполяция может содержать сложные выражения и операции, например:
let x1 = 5 let x2 = 6 let str = "x1 + x2 = \(x1 + x2)" print(str) // x1 + x2 = 11