переменную без создания нового класса, наследуемого от MyProtocol?
Протоколы это экзистенциальный тип. То есть это механизм инкапсуляции на уровне типа, а проще говоря эта коробка, которая хранит в себе только лишь определённые типы, которые удовлетворяют требованиям протокола. Отсюда и ответ, пустая коробка без какого либо типа внутри не имеет никакого смысла, с точки зрения системы типов, это и не тип вовсе.
Если правильно понял из официальной документации, то советуют использовать непрозрачные типы для инкапсуляции на границе модулей вместо протоколов. Несколько классов разных типов, удовлетворяя одному протоколу могут возвращать различные типы данных, в этом случае их нельзя будет сравнивать оператором == и т д. Могу и ошибаться, этот момент нужно уточнить.
https://developer.apple.com/videos/play/wwdc2022/110352/ https://developer.apple.com/videos/play/wwdc2022/110353
Обсуждают сегодня