2

enter image description here

extension Array where Element: _ArrayType, Element.Generator.Element: Any {
    func transpose() -> [Element] {
        if self.isEmpty { return [Element]() }
        let count = self[0].count
        var out = [Element](repeating: Element(), count: count)
        for outer in self {
            for (index, inner) in outer.enumerated() {
                out[index].append(inner)
            }
        }
        return out
    }
}

I am getting this error in Swift 3.0 after converting it from Swift 2.2. The elements of the array are also array. So how to define it in Swift 3.0?

Burhanuddin Sunelwala
  • 5,318
  • 3
  • 25
  • 51

1 Answers1

0
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
    }
}
Pang
  • 9,564
  • 146
  • 81
  • 122
zzycami
  • 31
  • 3