菜鸟教程小白 发表于 2022-12-12 23:14:05

ios - Swift3,可变字符串数组的扩展


                                            <p><p>我相信您对 <code></code> 进行了扩展,就像这样......</p>

<pre><code>extension Sequence where Iterator.Element == String {
</code></pre>

<p>假设我想改变数组 - 我的意思是说,改变数组中的每个字符串。怎么办?</p>

<pre><code>extension Sequence where Iterator.Element == String {
   func yoIzer() {
      for s in self { s = &#34;yo &#34; + s }
   }
}
</code></pre>

<p>这行不通。</p>

<p>(这只是一个示例,可能需要更复杂的处理:您可能希望避免只使用过滤器。)</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>序列是不可变的,并且在任何情况下更改元素 <code>s</code> 都不会改变它所来自的序列的任何内容(<code>s</code> 是一个副本)。</p>

<p>你想说的是:</p>

<pre><code>extension MutableCollection where Iterator.Element == String {
    mutating func yo() {
      var i = self.startIndex
      while i != self.endIndex {
            self = &#34;yo&#34; + self
            i = self.index(after: i)
      }
    }
}
</code></pre>

<p>这是一个测试:</p>

<pre><code>var arr = [&#34;hey&#34;, &#34;ho&#34;]
arr.yo()
print(arr)
// [&#34;yohey&#34;, &#34;yoho&#34;]
</code></pre>

<p>这种方法实际上直接来自 Swift 文档。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Swift3,可变字符串数组的扩展,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/41146129/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/41146129/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Swift3,可变字符串数组的扩展