菜鸟教程小白 发表于 2022-12-11 17:27:36

ios - 扩展 where 子句中的 ArrayType


                                            <p><p> <a href="/image/4dZsW.png" rel="noreferrer noopener nofollow"><img src="/image/4dZsW.png" alt="enter image description here"/></a> </p>

<pre><code>extension Array where Element: _ArrayType, Element.Generator.Element: Any {
    func transpose() -&gt; {
      if self.isEmpty { return () }
      let count = self.count
      var out = (repeating: Element(), count: count)
      for outer in self {
            for (index, inner) in outer.enumerated() {
                out.append(inner)
            }
      }
      return out
    }
}
</code></pre>

<p>从 Swift 2.2 转换后,我在 Swift 3.0 中遇到此错误。数组的元素也是数组。那么在 Swift 3.0 中如何定义呢?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><pre><code>extension Array where Element : Collection, Element.Index == Int, Element.IndexDistance == Int {
    func transpose() -&gt; [] {
      typealias InnerElement = Element.Iterator.Element
      if self.isEmpty { return [] }
      let count = self.count
      var out = [](repeating: (), count: count)
      for outer in self {
            for (index, inner) in outer.enumerated() {
                out.append(inner)
            }
      }
      return out
    }
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 扩展 where 子句中的 ArrayType,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/39366534/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/39366534/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 扩展 where 子句中的 ArrayType