【问题标题】:ArrayType in extension where clause扩展 where 子句中的 ArrayType
【发布时间】:2016-09-07 09:46:35
【问题描述】:

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
    }
}

从 Swift 2.2 转换后,我在 Swift 3.0 中遇到此错误。数组的元素也是数组。那么在 Swift 3.0 中如何定义呢?

【问题讨论】:

标签: ios arrays swift swift3 swift-extensions


【解决方案1】:
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
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    相关资源
    最近更新 更多