Вопрос проверяет понимание того, как Swift реализует протоколы и полиморфизм без наследования.
Короткий ответ
Witness table — это таблица, которая связывает конкретный тип с реализациями требований протокола. Когда тип соответствует протоколу, компилятор создаёт такую таблицу. Через неё Swift понимает, какие функции вызывать при работе с протоколом. Это основной механизм вызова методов у протоколов. Он используется вместо vtable для value-типов и протоколов.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.