Общие вопросы
Смешанные вопросы по Swift.
Открыть разделБаза Hintsage
Язык Swift и разработка приложений в экосистеме Apple.
Темы раздела
Смешанные вопросы по Swift.
Открыть разделТипы, функции, структуры, классы и базовая семантика.
Открыть разделOptionals, value/reference semantics, casting и pattern matching.
Открыть разделProtocols, extensions, associated types и generic constraints.
Открыть разделCollections, closures, map/filter/reduce и sequences.
Открыть разделARC, reference cycles, weak/unowned и время жизни объектов.
Открыть разделasync/await, actors, tasks и безопасность данных.
Открыть разделthrows, Result, defer и моделирование ошибок.
Открыть разделПрактика
Что означает ограничение Self == конкретный тип в расширении протокола и создаёт ли оно соответствие этому протоколу?
Как статический тип значения влияет на выбор одноимённых методов из ограниченных extensions протокола?
Возможно ли выразить в Swift generic-ограничение, что тип не соответствует протоколу?
Имеет ли порядок объявления extensions значение при поиске реализации требования протокола?
В generic-коде associated type должен совпадать с конкретным типом. Когда достаточно ограничения в where, а когда оправдан отдельный протокол-наследник?
Обязаны ли две функции, возвращающие some-тип одного протокола, возвращать один и тот же скрытый конкретный тип?
Почему ограничение associated type протоколом сохраняет связь между несколькими членами, а existential-тип any того же протокола — нет?
Сохраняет ли typealias условное соответствие исходного generic-типа протоколу после специализации?
В generic-функции параметр типа назван так же, как associated type протокола. Относятся ли эти имена к одному типу?
Неоднозначный вывод associated type при проверке соответствия протоколу: как Swift разрешает конфликт между кандидатами?
Сравните параметр some P с параметром any P: какую информацию о конкретном типе сохраняет каждый вариант внутри generic-кода?
Допустимо ли объявить условное соответствие для existential-типа any P в зависимости от скрытого конкретного типа?
Почему составной протокол P & Q нельзя использовать как отдельный протокол для объявления соответствия типа?
Как задать для associated type одновременно несколько протокольных ограничений и какие операции это разрешает generic-коду?
В чём разница между ограничением Self в расширении протокола и отдельным протоколом-наследником с тем же условием?
Что на самом деле означает ограничение associated type через соответствие протоколу по сравнению с его равенством existential-типу?
Допустима ли реализация требования протокола менее доступным членом, чем само требование, и почему?
Нужно определить: способен ли член из ограниченного extension конкретного типа реализовать неограниченное требование протокола?
Рассмотрите соответствие протоколу с потенциально неуспешным инициализатором. Почему Swift принимает такую реализацию?
protocol DecodablePacket {
init?(bytes: [UInt8])
}
struct Header: DecodablePacket {
init(bytes: [UInt8]) {
}
}
let header: Header? = Header(bytes: [])
Как Swift выводит цепочку зависимых associated types, если один из них ограничен через другой?
Показано 421–440 из 651