Ast
Copy-on-write так работает? Пример с массивом: создаём переменную с типом Array, копируем ее в другую переменную, в этот момент массив не скопируется во вторую переменную, а будет передаваться по ссылке. Когда мы изменяем второй массив, тогда он копируется уже с изменениями. Так все работает? Надеюсь я все правильно понял
Да, как только вызвался какой-либо метод mutable метод, копируется полностью массив. Поэтому операция array[index] = value не O(1) (при условии. что isKnownUniquelyReferenced(_:) = false) , а O(1) on average. Потому что иногда приходится массив полностью копировать.