All streams
Search
Write a publication
Pull to refresh

Comments 5

Спасибо, интересно было прочитать. Единственное, не совсем понятно расположение сворачиваемых блоков. Такое впечатление, что некоторые из них съехали в другие разделы.

Например, блок "Где хранятся статические переменные?" находится в конце раздела "Выводы", хотя выше есть раздел "Сегменты памяти", где все это и описано. Блок "Что такое Copy-On-Write (COW)? Как можно сделать свой COW?" находится в разделе "Жизненный цикл объекта в Swift", хотя выше есть раздел посвященный COW.

Привет! Спасибо за комментарий)

На самом деле это было сделано специально. Я подчеркнул этот подход из книги "Как научиться учиться: Навыки осознанного усвоения знаний" Ульриха Бозера. Там книга строится на том, что вопросы по главе могут появляться не сразу после нее, а позже, например через главу. Это позволяет читателю возвращаться и искать информацию тем самым помогает усвоению материала

UFO landed and left these words here

Объект размещается непосредственно в переменной, и при присвоении другой переменной он копируется полностью.

Неужели каждый раз Swift будет копировать весь массив целиком? Копирование — операция тяжёлая, и при больших объёмах данных она потребляет много времени и ресурсов.

Ответ — нет, и в этом помогает механизм COW (Copy-On-Write). В приведённой ситуации Swift не создаёт новую копию массива при каждом присвоении. Вместо этого он присваивает каждой переменной ссылку на общий массив, а копирование произойдёт только при изменении содержимого.


вы сами себе противоречите


дальше "Ссылка на документацию от Apple" ведет не в документацию, а куда-то в swift git репозиторий, где описание состояний мягко говоря расходится с вашим.

также есть путаница в содержании разделов, о которой уже писали выше.

И в довершение - дата написания статьи:

Grandschtien 31 авг в 12:13

И человек тут же получает приглашение на Хабр:

Приглашен 

31 августа  по приглашению от  НЛО

Это какой-то фарм акаунтов или что? Тем более, что это очередная статья, криво сгенерированная в chatgpt

Привет! Спасибо за комментарий)

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

Спасибо что обратили внимание, там действительно был недочет при описании ЖЦ объекта. Я его поправил:

3. Deinited — здесь у объекта нет сильных ссылок, но могут быть слабые или бесхозные ссылки.

Если слабых ссылок нет и счетчик бесхозных ссылок достигает 0, объект переходит в Dead.

Если есть слабые ссылки и счетчик бесхозных ссылок достигает 0, объект переходит в Freed.

Также обновил формулировку с ссылкой на файл в репозитории Apple.

По поводу путаницы, я уже отвечал) Это было сделано намеренно, хотел попробовать метод, который я увидел в книге.

Ну а что касается приглашения, то тут обвинение необоснованно. Я писал статью не для того, чтобы его получить, а для того, чтобы поделиться своими заметками с сообществом, и буду продолжать ими делиться в дальнейших статьях)

Sign up to leave a comment.

Articles