№33 - Extensions в swift | Что от вас скрывают!?
ฝัง
- เผยแพร่เมื่อ 28 ก.ย. 2024
- #extensions #swift
Присоединяйтесь к сообществу!
Телеграмм канал: t.me/bwswift
Телеграмм чат: t.me/bwswiftchat
Поддержите канал на патреоне!
/ bwswift
Подписывайтесь в соц сетях:
LinkedIn - / slavabeliy
Twitter - / vycheslavbeliy
Facebook - www.facebook.c...
Instagram - / belyi_viacheslav
Поддержите канал на патреоне!
www.patreon.com/bwswift
Сразу лайк!
Подача,картинки,обьяснения 100 из 100,спасибо за потраченное на нас время)
Супер! Заходите еще!
Спасибо большое! Легко и непринуждённо, подан материал!
👍
Спасибо и больше видео!
❤️
Спасибо за видео.
По идее lazy computed property можно добавлять в расширения.
Пробовал в плейграунде?
Отличный канал и подача материала! 🔥
Спасибо за поддержку!
Я думаю, может быть для добавления статических свойств и методов в extension следует использовать ключевое слово static, потому что оно указывает на то, что свойство или метод принадлежит самому типу и не может быть переопределено в подклассах.
Схватываете на лету!
статическую хранимую переменную "class var"(которая дает возможность переопределения в дочернем классе) мы не можем использовать в extension, однако метод "class func"(который тоже дает возможность переопределиться в дочернем классе) мы можем использовать. У меня не сходится )
lazy це computed , а extention працює тільки з stored properties =)
Майже вірно, давай ще раз
@@bwswift🤦🏻♂️ ой навпаки ) lazy це stored, а extension працює тільки з computed
31:28 lazy в extension не сможет определить диспечеризацию ? lazy вызывается в момент обращения , но если как и с классом мы сделаем ее static то ошибка исчезнит или просто уберем lazy тут пригодить предыдщие уроки про проперти
Тут ключевой вопрос, что не можно объявлять в екстеншенах и как это связанно с lazy?
@@bwswift в Extension можна оверыйдить.
Спасибо!
👍
Вячеслав, спасибо за лекцию!!! По поводу lazy properties - я была уверена, что все lazy свойства являются хранимыми, поэтому lazy property нельзя добавить в extension. Computed property не могут быть lazy, потому что они каждый раз вычисляются при обращении к ним… а lazy property инициализируются только 1 раз и далее используются как обычные stored property. Разве не так? Или я ошибаюсь?
Все правильно
Дуже дякую! Подобається що детально розповідаєш, і головне що ця інформація корисна не тільки починаючим розробникам а і тим хто вже давно працює, дуже радий шо мені тебе порекомендували!
Дякую за теплий відгук!
Предположение на вопрос в конце видео:
Расширение не имеет собственного хранилища для хранения состояния свойств.
👍
можешь поподробнее написать 🙏
@@annaruslanovna6115 В Swift, расширения предназначены для добавления новых методов и вычисляемых свойств существующим типам данных.
В расширения нельзя добавлять хранимые свойства (stored properties) или изменять существующие. Это ограничение сделано для обеспечения безопасности и предсказуемости кода.
Если тебе необходимо добавить хранимое свойство к типу данных, ты должна делать это в основном коде, а не через расширение.
оч круто это мой третий марафон по свифту и так доступно ни кто не доводит материал!Супер!
Спасибо!
Дякую за лекцію - дуже цікавий момент про static property та ієрархію. Та ще що lazy не можно в extensions, але я спочатку думав що можна)
❤️
Слухаю у процесі підготовки до інтервʼю. Чотири роки розробки, а досі багато чого нового для себе у кожній лекції. Дуже дякую тобі за таку важку працю.
Дякую за відгук! Я душу вклав в ці заняття :)
Большое спасибо за новое видео. 👍
И вам спасибо за комментарий!
немного непонятно type stored property - это тоже stored property (только type), однако ее можно использовать в extension. Тоесть получается мы не можем использовать в extension только instance stored properties.
да
в документации сказано, что в расширениях можно определять только вычисляемые проперти объекта или типа. А вы объявили хранимую. пусть даже статическую. Про нее не упомяналось в документации
Все верно, в документации єто упущено
Большое спасибо Вам! Очень крутой канал, почти все основы пересмотрел у Вас, еще много интересного предстоит увидеть)
❤️
Ещё одна причина, по которой не стоит в экстеншене переопределять @objc dymanic функции - тогда method dispatch выбирает самый медленный тип диспетчеризации, который в разы медленнее обычной статической диспетчеризации, что в больших и нагруженных проектах не есть гуд. Да и просто лид по рукам надаёт
👍
Как всегда супер, спасибо)
Благодарю!
Агинь))
27:31 наверное потому что мы можем переопределить проперти подклассом ?
Хороший вариант!
Огромное спасибо за урок!
👍
Класс!!! Спасибо за видео!)
И вам спасибо за комментарий!
Супер, з Вашим поясненням тема зайшла легше👍👌
Дякую! Вже працюю над протоколами