ТАЙМКОДЫ: 00:00 Введение. 00:18 Особенность структур (ключевое слово mutating) (Теория) 04:14 Что такое протоколы 04:46 Чем хороши протоколы 06:51 Три аспекта протоколов 07:46 Разница между протоколами SWIFT и Objective-C (Декларация и реализация протоколов) 09:30 Как происходит декларирование протоколов 11:47 Как класс или структура реализует протоколы (Использование протоколов) 13:55 Использование протоколов как ТИПОВ 18:36 Использование протоколов в делегировании 27:47 Использование протоколов для обязательного поведения 31:36 Протокол Hashable на примере (обязательность поведения) 39:28 Множественное наследование
Решил зайти в SWIFT, чуток знаю PHP, пару дней смотрю видосы, чтобы прикинуть, что к чему, если бы не старый опыт то понять было бы нереально - не на что крепить информацию для начинающего. Может кому-то пригодится для понимания, протоколы примерный аналог интерфейсов PHP, но как правило такими подходами пользуются уже продвинутые в командной игре и маштабируемом проекте, которые пишут свои фреймворки или задают джунам на реализацию их интерфейсы.
Есть вопрос по поводу "магии" Hashable. Допустим раньше когда мы реализовывали hashValue было понятно где находится реализация Hashable - в классе, в котором мы подписываемся на Hashable. А теперь вопрос: где находится реализация в современном Swift? Я подписываюсь под Hashable и могу напрямую реализовать то, что он декларирует, а могу и не реализовывать. Где находится реализация Hashable? Компилятор сам увидет Hashable и реализует нужные методы в классе, но почему тогда не использовать наследование? А если это работает не так, то как мне делать стандартные реализации для протоколов как ,например, потенциально это делает Hashable/Equitable. Факт что можно создать переменную hashable и сказать ей где реализация (например в классе Hashable), но смысла в этом мало, да и интересует именно момент с "магией"
Почитайте еще документацию про Hashable от самой Эппл. Ниже ссылка. Если непонятно, что написано на английском - вставьте все в гугл переводчик +- все правильно переведёт developer.apple.com/documentation/swift/hashable Вот ещё хорошая статья на русском про Хеш-Таблицы habr.com/ru/post/509220/ Если все ещё будет непонятно, заходите в наш чат в Телеграмме и задайте ещё раз Ваш вопрос. t.me/swiftbookstart_chat
Надо смотреть на код, много может быть причин, почему выдаётся ошибка. Сделайте скриншот Вашего кода и пришлите его в наш чат и повторите там ещё раз Ваш вопрос. Я или может быть кто-то другой из чата Вам ответят. Ссылка на чат: t.me/swiftbookstart_chat
ТАЙМКОДЫ:
00:00 Введение.
00:18 Особенность структур (ключевое слово mutating)
(Теория)
04:14 Что такое протоколы
04:46 Чем хороши протоколы
06:51 Три аспекта протоколов
07:46 Разница между протоколами SWIFT и Objective-C
(Декларация и реализация протоколов)
09:30 Как происходит декларирование протоколов
11:47 Как класс или структура реализует протоколы
(Использование протоколов)
13:55 Использование протоколов как ТИПОВ
18:36 Использование протоколов в делегировании
27:47 Использование протоколов для обязательного поведения
31:36 Протокол Hashable на примере (обязательность поведения)
39:28 Множественное наследование
Все, здесь мой мозг отключился...(
Спасибо за лекции и рекомендации. Буду изучать. )
Все понятно и по делу! По Скутеренко сам учился лет 5 назад)
Спасибо большое…. Превосходное объяснение 👍✨✨✨
Канал быстро растёт это круто. Контент топ стал
Жду ещё! Спасибо
Вот это урок. Спасибо!)
Прекрасно
Супер!!!
Спасибо за видео, очень хорошие уроки
шикарно, спасибо
Best
Решил зайти в SWIFT, чуток знаю PHP, пару дней смотрю видосы, чтобы прикинуть, что к чему, если бы не старый опыт то понять было бы нереально - не на что крепить информацию для начинающего. Может кому-то пригодится для понимания, протоколы примерный аналог интерфейсов PHP, но как правило такими подходами пользуются уже продвинутые в командной игре и маштабируемом проекте, которые пишут свои фреймворки или задают джунам на реализацию их интерфейсы.
вообще Стэнфордский курс расчитат на человека, знакомого с основами языка, поэтому лучше до этого еще что-то пройти )
Отличный канал и качественные видео. Спасибо.
Большое спасибо за ваш труд. Круто очень! Когда будет продолжение?
почему то после изменений в коде, по вашему видео, у меня в игре при совпадении двух карточек, эмодзи стали меняться на другие перед тем как исчезнуть
рекомендую
Есть вопрос по поводу "магии" Hashable. Допустим раньше когда мы реализовывали hashValue было понятно где находится реализация Hashable - в классе, в котором мы подписываемся на Hashable. А теперь вопрос: где находится реализация в современном Swift? Я подписываюсь под Hashable и могу напрямую реализовать то, что он декларирует, а могу и не реализовывать. Где находится реализация Hashable? Компилятор сам увидет Hashable и реализует нужные методы в классе, но почему тогда не использовать наследование? А если это работает не так, то как мне делать стандартные реализации для протоколов как ,например, потенциально это делает Hashable/Equitable. Факт что можно создать переменную hashable и сказать ей где реализация (например в классе Hashable), но смысла в этом мало, да и интересует именно момент с "магией"
Почитайте еще документацию про Hashable от самой Эппл. Ниже ссылка. Если непонятно, что написано на английском - вставьте все в гугл переводчик +- все правильно переведёт
developer.apple.com/documentation/swift/hashable
Вот ещё хорошая статья на русском про Хеш-Таблицы
habr.com/ru/post/509220/
Если все ещё будет непонятно, заходите в наш чат в Телеграмме и задайте ещё раз Ваш вопрос.
t.me/swiftbookstart_chat
Отличный урок! Только вопрос - почему на этапе протоколирования карт в коде всплывает ошибка "Сannot find "Card" in scope" ?
P.S. Xcode 12
Надо смотреть на код, много может быть причин, почему выдаётся ошибка.
Сделайте скриншот Вашего кода и пришлите его в наш чат и повторите там ещё раз Ваш вопрос. Я или может быть кто-то другой из чата Вам ответят.
Ссылка на чат:
t.me/swiftbookstart_chat
Я так понял протоколы это налог интерфейсов в Джава?
Да
Жаль что все рассказано на UIKit а не на SwiftUI .
В дальнейшем может и по SwiftUI будет
@@ivanskorokhod2959 protocol Moveable {
mutating func - маленькая ремарка .
}