用于协议扩展中的功能命名的分段故障11

时间:2016-12-18 12:06:13

标签: swift function segmentation-fault protocol-extension

问题很简单。这会导致分段错误:

extension Sequence {

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

}

显然我不知道如何编写协议扩展。有人帮忙吗? :)

1 个答案:

答案 0 :(得分:0)

错误是我认为我需要通用类型T.因为它只是Iterator.Element,它很快就是Sequence协议中的一个类型。

extension Sequence {

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

}

对任何能够解释为什么编译器不喜欢它的人都感到荣幸。这显然效率不高但为什么会出错?