Swift. Ключевые слова any и some. Экзистенциальный контейнер.

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 พ.ย. 2024

ความคิดเห็น • 28

  • @АнатолийЛушников-ф6ь
    @АнатолийЛушников-ф6ь 9 หลายเดือนก่อน

    Николай, большое спасибо вам за урок. Очень доходчиво объясняете.

    • @nikolai.developer
      @nikolai.developer  9 หลายเดือนก่อน

      Пожалуйста, рад, что вам понравилось.

  • @damencki
    @damencki 8 หลายเดือนก่อน

    Большое спасибо за видео. Очень понятно и без воды!

  • @КонстантинИсаченко-е3б
    @КонстантинИсаченко-е3б ปีที่แล้ว +5

    Спасибо за урок! Я бы с удовольствием посмотрел и послушал Ваше объяснение диспетчеризации.

    • @nikolai.developer
      @nikolai.developer  ปีที่แล้ว +1

      Спасибо, на будущей неделе запишем.

  • @Stricken174
    @Stricken174 9 หลายเดือนก่อน

    Прод очень консервативен в таких вещах) Спасибо за объяснение!

  • @pickleteach1920
    @pickleteach1920 ปีที่แล้ว +3

    Удивительно, что youtube только сейчас предложил Ваш канал
    Большое спасибо за Ваши видео!

  • @InSideCannel
    @InSideCannel 3 หลายเดือนก่อน

    Очень понятно построенно объяснение! Спасибо

    • @nikolai.developer
      @nikolai.developer  3 หลายเดือนก่อน

      Рад, что вам было полезно.

  • @romildathetortoise
    @romildathetortoise ปีที่แล้ว +1

    Спасибо. Хорошее объяснение на достаточно глубоком уровне. Таких видео очень не хватает. Все обычно объясняют не сильно глубже документации свифта. Есть много тем, которые было бы здорово раскрыть на таком же уровне - дженерики, память, экзистенциальность, рендеринг, xcode instruments, ... Еще раз спасибо.

    • @nikolai.developer
      @nikolai.developer  ปีที่แล้ว +1

      Спасибо вам за отзыв.
      Темы и видео будут появляться. Будем освещать.

    • @barret3575
      @barret3575 3 หลายเดือนก่อน

      @@nikolai.developer а почему мой коммент удалили

  • @AA-ld2ix
    @AA-ld2ix ปีที่แล้ว +3

    Спасибо, очень рад что наткнулся на ваш канал)

  • @РенатГалямов-о4т
    @РенатГалямов-о4т 9 หลายเดือนก่อน

    Спасибо, все понятно!

  • @Денис-ж3ф5р
    @Денис-ж3ф5р 10 หลายเดือนก่อน

    Круто

  • @maximpanteleev5413
    @maximpanteleev5413 3 หลายเดือนก่อน

    Привет, что ты имеешь в виду на 17:35 примерно "размер массива будет равен количеству элементов одинаковому"?
    Размер массива всегда один и тот же, он не зависит от количества элементов)

    • @nikolai.developer
      @nikolai.developer  3 หลายเดือนก่อน

      Ну изначально да, все массивы одинакового размера. Но, когда мы все-таки дойдем до предела и нам нужно вставить новый элемент. То массив увеличивается в два раза (берется новый блок памяти туда копируется старое содержимое и добавляется новый элемент).
      Здесь я имел в виду фактический размер всех элементов, которые в массиве есть и механизм, который позволяет сохранять возможность обращения к этим элементам массива по индексу. Хотя, мы не знаем какого они размера (так как там просто протоколы указаны).

    • @maximpanteleev5413
      @maximpanteleev5413 3 หลายเดือนก่อน

      @@nikolai.developer ок, понял.
      зы. я про то, что если смотреть размер массива через memorylayout там всегда 8 будет, тк в нем ссылка на буфер лежит и больше ничего

    • @maximpanteleev5413
      @maximpanteleev5413 3 หลายเดือนก่อน

      @@nikolai.developer ок, понял
      зы. я про то, если смотреть через memorylayout, то всегда будет размер один и тот же, т.к. в массиве только ссылка на буфер лежит

  • @shurale85
    @shurale85 ปีที่แล้ว

    Намудрили с протоколами в свифте. В c# куда проще с ними и угловые дженерики сразу поддерживаются. Сложно понять почему если два разных объекта, реализующих один и тот же протокол не могут быть возвращены в рамках одного метода, тип возврата которого и есть этот протокол.

    • @nikolai.developer
      @nikolai.developer  ปีที่แล้ว

      Если я правильно вас понял, то могут быть возвращены. Но нужно указать any ProtocolName. Как возвращаемый тип.
      Согласен, что система сходу не простая. Если сложно запомнить или разобраться на первых порах можно просто к имени протокола добавлять ключевое слово any.
      Но, все это призвано, чтобы сэкономить память и время вызова уменьшить.

  • @vitaliyhalai6017
    @vitaliyhalai6017 ปีที่แล้ว

    Супер

  • @DenisBrilliantov
    @DenisBrilliantov 8 หลายเดือนก่อน

    Там про existential container ты не правильно рассказал там хранятся pvwt(pointer to value witness table) pwt (pointer to Protocol Witness Table) а у теббы там virtual table хотя он для классов а не протоколов

    • @nikolai.developer
      @nikolai.developer  8 หลายเดือนก่อน +1

      Спасибо за замечание. Все верно.
      Основной момент, который хотелось рассмотреть - это разница any, some и в массиве "умещаются" объекты, которые могут быть разных размеров.
      Про таблицы говорилось для того, чтобы было понятие, что они там есть. В виде ссылок или самих значений не так принципиально. А про то то, что там VT - это да, ошибся когда составлял слайд.

    • @Денис-ж3ф5р
      @Денис-ж3ф5р 8 หลายเดือนก่อน +1

      Да я понимаю что это не фокус был) видео то хорошое. Редко такой контент найдешь где