Общие вопросы
Смешанные вопросы по 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 и моделирование ошибок.
Открыть разделПрактика
В практическом коде generic-функция принимает тип, соответствующий протоколу с associated type. Почему вариант с any в ограничении не компилируется, а вариант без него работает?
protocol Parsable {
associatedtype Output
static func parse(_ text: String) -> Output
}
struct Number: Parsable {
static func parse(_ text: String) -> Int { Int(text)! }
}
func parse<T: any Parsable>(_ type: T.Type, _ text: String) -> T.Output {
T.parse(text)
}
func parseCorrect<T: Parsable>(_ type: T.Type, _ text: String) -> T.Output {
T.parse(text)
}
let value = parseCorrect(Number.self, "42")
Как Swift разрешает конфликт, если два импортированных модуля добавляют одному типу соответствие одному протоколу?
Класс наследует от базового класса метод, совпадающий с требованием протокола, а соответствие протоколу объявлено в его extension. Какая реализация станет witness и почему?
Может ли свойство конкретного типа с более узким типом результата реализовать требование протокола, возвращающее протокольный тип?
Может ли немутирующий метод конкретного типа реализовать mutating-требование протокола в Swift?
Установите границу: когда generic-код может создать значение параметра типа через его инициализатор?
Есть ли у generic typealias собственное соответствие протоколу, отличное от соответствия исходного типа?
Оцените последствие добавления нового associated type в публичный протокол: что произойдёт с уже существующими соответствиями типов?
Как Swift трактует where у associated type: как обязательное условие соответствия протоколу или только как ограничение доступности его членов?
Почему Swift не поддерживает generic associated type в протоколах?
Вызов метода протокола с аргументом по умолчанию из extension: от чего зависит, будет ли вызов без аргумента допустимым?
В практической задаче нужно взять только начальный участок Sequence, пока условие истинно. Какой механизм остановит обход при первом нарушении условия?
Что произойдёт при создании словаря из последовательности пар через инициализатор, требующий уникальных ключей, если один ключ встретится дважды?
Представьте сортировку массива по пользовательскому правилу: какое свойство должен обеспечивать компаратор, чтобы результат имел гарантированный порядок?
Как следует трактовать порядок обхода Set в Swift между разными запусками программы?
Уточните, какую сложность RandomAccessCollection обязуется обеспечить для вычисления расстояния между двумя индексами?
Что гарантирует reserveCapacity у Array и чего из этого нельзя заключать?
Нужно передать неэкранирующее замыкание синхронному API, который принимает экранирующее. Какой механизм Swift позволяет сделать это без продления времени жизни замыкания?
Какой риск возникает при обращении к произвольной Collection по целому смещению вместо её Index?
Для чего параметр limitedBy нужен в index(_:offsetBy:limitedBy:) у Collection?
Показано 441–460 из 651