Лекция 6. Протоколы protocol. Геометрические фигуры Shape.CS193P Spring 2021.

Это шестая Лекция курса Stanford CS193p, весна 2021 года, и на этой лекции профессор рассматривает последний элемент списка разновидностей ТИПов Swift — протоколы protocol. Протоколы protocol, очень, очень важны в SwiftUI, кроме того, эта разновидность ТИПа Swift в наибольшей степени отличается от других языков, которые вы когда либо видели.

Надо сказать, что тема протоколов protocol в этой году представлена значительно шире и подробнее, чем когда-либо в стэнфордских курсах CS193P. Начиная от использования протоколов protocol в синтаксических конструкциях Swift и SwiftUI как ограничивающего «поведения» наподобие Identifiable, Hashable, Equatable, CustomStringConvertible и кончая возможностью совместного использования кода в расширениях extension протоколов protocol. К этому он добавляет «связку» protocolGenerics, которая является фундаментальной основой протокольно-ориентированного программирования. Профессор никогда не углублялся в эту тему, считая ее продвинутой в языке Swift, но на этой Лекции она представлена в полном объёме. Здесь также присутствует тема наследования протоколов” (protocol inheritance), не путать с наследованием классов (class inheritance), Self-ссылочные протоколы наподобие Equatable, View, которые не могут использоваться как нормальные ТИПы.

Читать далее