0

問題は本当に簡単です。これにより、セグメンテーション違反が発生します。

extension Sequence {

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

}

明らかに、プロトコル拡張の書き方がわかりません。誰か助けてください?:)

4

1 に答える 1

0

エラーは、ジェネリック型 T が必要であると考えていたことです。それは Iterator.Element であり、幸いにも Sequence プロトコル内の型です。

extension Sequence {

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

}

コンパイラがそれを好まなかった理由を説明できる人への称賛。明らかに非効率的ですが、なぜ間違っているのでしょうか?

于 2016-12-18T14:25:49.830 に答える