Ошибка сегментации 11 для именования функций в расширении протокола

Проблема действительно проста. Это вызывает ошибку сегментации:

extension Sequence {

    func parallelForEach<T, R>(_ f: @escaping (T) -> R, completion: @escaping ([R]) -> ()) where Iterator.Element == T {
    }

}

Очевидно, я больше не знаю, как написать расширение протокола. Кто-нибудь, помогите, пожалуйста?:)

1 ответ

Ошибка заключалась в том, что я подумал, что мне нужен универсальный тип T. Поскольку это был просто Iterator.Element, который, к счастью, является типом в протоколе Sequence.

extension Sequence {

    func parallelForEach<T, R>(_ f: @escaping (Iterator.Element) -> R, completion: @escaping ([R]) -> ()) {
    }

}

Престижность любому, кто может объяснить, почему компилятору это не понравилось. Это явно неэффективно, но почему это должно быть неправильно?

Другие вопросы по тегам