Выбор ответа Middle Ошибки обновлено
Что означает rethrows
Вопрос
Что означает func map<T>(_ transform: (Element) throws -> T) rethrows -> [T]?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Бросает, только если бросает переданное замыкание. rethrows говорит компилятору: собственных ошибок нет, только ошибки параметра-замыкания.
Варианты ответа
- Бросает, только если бросает переданное замыканиеправильный ответ
- Перехватывает ошибки замыкания и бросает их с другим типом
- Функция всегда бросает и требует
tryпри любом вызове - Повторяет вызов замыкания, если оно бросило ошибку
Разбор
rethrows говорит компилятору: собственных ошибок нет, только ошибки параметра-замыкания. Поэтому [1, 2].map { $0 * 2 } вызывается без try, а map { try parse($0) } требует try. Перехвата с изменением типа и повторов нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.