Документация

Присваивание и копирование поведения для строк, массивов и словарей

В Swift типы String, Array, Dictionaries объявлены как структуры. Это значит, что строки, массивы и словари копируются, когда присваиваются новой константе или переменной, или когда они передаются функции.

Такое поведение отличается от NSString, NSArray и NSDictionary в Foundation, где они реализованы как классы, а не структуры. Экземпляры NSString, NSArray и NSDictionary всегда присваиваются и передаются как ссылки на существующий экземпляр, а не как его копии.

Заметка

Описание выше относится к «копированию» строк, массивов, словарей. Поведение, которое вы видите в вашем коде всегда будет, будто ваше значение скопировали. Однако Swift делает текущую копию, когда это абсолютно необходимо. Swift управляет всеми процессами копирования величин, для гарантии оптимальной производительности, и вам не стоит избегать присваивания для упреждения этой оптимизации.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: