Выбор ответа Middle Swift Concurrency обновлено
Когда структура Sendable
Вопрос
Какая структура может быть Sendable без @unchecked?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: struct Point { let x: Double; let y: Double }. Структура Sendable, если все её хранимые свойства Sendable.
Варианты ответа
struct Box { let ref: NSMutableArray }struct Point { let x: Double; let y: Double }правильный ответstruct Handler { var action: () -> Void }struct Cache { var storage: UnsafeMutablePointer<Int> }
Разбор
Структура Sendable, если все её хранимые свойства Sendable. Double Sendable, а неэкспортируемые структуры получают соответствие неявно. Изменяемый класс NSMutableArray, не-@Sendable замыкание и сырой указатель разделяют изменяемое состояние, и компилятор такое соответствие не примет. Для них есть @unchecked Sendable, но тогда безопасность на вашей совести.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.