DevPrep

Все темы › Swift Concurrency (async/await, акторы)

Что такое Sendable и зачем он нужен?

Senior PRO

Суть

Sendable — протокол-маркер без требований: «значение этого типа можно безопасно передать через границу изоляции (между акторами, задачами, потоками) без гонок данных». Компилятор проверяет его на каждой границе: аргументы и результаты вызовов актора, захваты в Task { }, @Sendable-замыкания. В Swift 6 нарушение — ошибка компиляции, в Swift 5 с -strict-concurrency=complete — предупреждение.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store