Ios 扩展where子句中的ArrayType

Ios 扩展where子句中的ArrayType,ios,arrays,swift,swift3,swift-extensions,Ios,Arrays,Swift,Swift3,Swift Extensions,从Swift 2.2转换过来后,我在Swift 3.0中得到了这个错误。数组的元素也是数组。那么如何在Swift 3.0中定义它呢?@NDoc Updated!!看看,根据您的需要修改代码应该很容易。@MartinR谢谢!正是我需要的。 extension Array where Element : Collection, Element.Index == Int, Element.IndexDistance == Int { func transpose() -> [[Eleme


从Swift 2.2转换过来后,我在Swift 3.0中得到了这个错误。数组的元素也是数组。那么如何在Swift 3.0中定义它呢?

@NDoc Updated!!看看,根据您的需要修改代码应该很容易。@MartinR谢谢!正是我需要的。
extension Array where Element : Collection, Element.Index == Int, Element.IndexDistance == Int {
    func transpose() -> [[Element.Iterator.Element]] {
        typealias InnerElement = Element.Iterator.Element
        if self.isEmpty { return [] }
        let count = self[0].count
        var out = [[InnerElement]](repeating: [InnerElement](), count: count)
        for outer in self {
            for (index, inner) in outer.enumerated() {
                out[index].append(inner)
            }
        }
        return out
    }
}
extension Array where Element : Collection, Element.Index == Int, Element.IndexDistance == Int {
    func transpose() -> [[Element.Iterator.Element]] {
        typealias InnerElement = Element.Iterator.Element
        if self.isEmpty { return [] }
        let count = self[0].count
        var out = [[InnerElement]](repeating: [InnerElement](), count: count)
        for outer in self {
            for (index, inner) in outer.enumerated() {
                out[index].append(inner)
            }
        }
        return out
    }
}