Ответ
Строковый литерал в Swift имеет тип String, который является структурой (value type), а не классом.
Пример и проверка типа:
let greeting = "Hello, World!" // Тип выводится как String
print(type(of: greeting)) // Выводит: String
// Явная аннотация типа
let title: String = "Swift Guide"
Особенности типа String:
- Это value type, копируемый при присваивании или передаче в функцию.
- Представляет коллекцию символов Unicode, корректно обрабатывая эмодзи и сложные графемы.
- Реализует протоколы
ExpressibleByStringLiteral,Collection,Equatable,Comparable. - Для эффективности работы с подстроками использует тип
Substring, который делит буфер памяти с исходной строкой.
Связь с Objective-C:
Тип NSString из Foundation является классом (reference type). Swift обеспечивает автоматический мост (bridging) между String и NSString, когда импортируется модуль Foundation.