Вопрос проверяет знание рекурсивных структур, модели памяти Swift и различий между прямым и косвенным хранением данных.
Короткий ответ
indirect требуется, когда enum содержит себя напрямую или косвенно через associated values. Оно изменяет способ хранения данных: значение перестаёт храниться целиком внутри enum и выносится в heap. Это позволяет компилятору определить размер типа. При этом появляются дополнительные затраты на выделение памяти и разыменование ссылки.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.