Видеокурсы по изучению языка программирования Swift. Подробнее

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

Если вы нашли опечатку в тексте, выделите ее и нажмите CTRL + ENTER.

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

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

Заметка

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

 

Swift: 
3.0