172 похожих чатов

Помогите неучу... есть протокол protocol MyProtocol { } есть переменная var myProtocol: MyProtocol как инициализировать эту

переменную без создания нового класса, наследуемого от MyProtocol?

3 ответов

20 просмотров

Протоколы это экзистенциальный тип. То есть это механизм инкапсуляции на уровне типа, а проще говоря эта коробка, которая хранит в себе только лишь определённые типы, которые удовлетворяют требованиям протокола. Отсюда и ответ, пустая коробка без какого либо типа внутри не имеет никакого смысла, с точки зрения системы типов, это и не тип вовсе.

Руслан Лутфуллин
Протоколы это экзистенциальный тип. То есть это ме...

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

Rearden
Если правильно понял из официальной документации, ...

https://developer.apple.com/videos/play/wwdc2022/110352/ https://developer.apple.com/videos/play/wwdc2022/110353

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта