勒勒 發表於 2023-6-20 11:52:12

Swift高阶函数contains allSatisfy reversed lexicographicallyPrecedes用法示例

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>一、contains</li><li>二、allSatisfy</li><li>三、reversed</li><li>四、lexicographicallyPrecedes</li></ul></div><p class="maodian"></p><h2>一、contains</h2>
<p>返回一个布尔值,指示序列的每个元素是否满足给定的条件。如果有一个满足即返回。</p>
<div class="jb51code"><pre class="brush:java;">   let expenses =
   let hasBigPurchase = expenses.contains { $0 &gt; 100 }
   // 'hasBigPurchase' == true</pre></div>
<p><code>Sequence</code>协议源码</p>
<div class="jb51code"><pre class="brush:java;">@inlinable
public func contains(_ element: Element) -&gt; Bool {
    if let result = _customContainsEquatableElement(element) {
      return result
    } else {
      return self.contains { $0 == element }
    }
}</pre></div>
<div class="jb51code"><pre class="brush:java;">@inlinable
public func contains(
    where predicate: (Element) throws -&gt; Bool
) rethrows -&gt; Bool {
    for e in self {
      if try predicate(e) {
      return true
      }
    }
    return false
}</pre></div>
<p class="maodian"></p><h2>二、allSatisfy</h2>
<p>返回一个布尔值,指示序列的每个元素是否满足给定的条件。需要所有元素都满足。</p>
<div class="jb51code"><pre class="brush:java;">      let names = ["Sofia", "Camilla", "Martina", "Mateo", "Nicolás"]
      let allHaveAtLeastFive = names.allSatisfy({ $0.count &gt;= 5 })
      // allHaveAtLeastFive == true</pre></div>
<p><code>Sequence</code>协议源码</p>
<p><code>allSatisfy</code>里面调用了<code>contains</code>方法</p>
<div class="jb51code"><pre class="brush:java;">@inlinable
public func allSatisfy(
    _ predicate: (Element) throws -&gt; Bool
) rethrows -&gt; Bool {
    return try !contains { try !predicate($0) }
}</pre></div>
<p class="maodian"></p><h2>三、reversed</h2>
<p>返回一个数组,该数组以相反的顺序包含此序列的元素。</p>
<div class="jb51code"><pre class="brush:java;">let list =
let ret = list.reversed()
print(Array(ret))
---console
</pre></div>
<p><code>Sequence</code>协议源码</p>
<div class="jb51code"><pre class="brush:java;">@inlinable
public __consuming func reversed() -&gt; {
    // FIXME(performance): optimize to 1 pass?But Array(self) can be
    // optimized to a memcpy() sometimes.Those cases are usually collections,
    // though.
    var result = Array(self)
    let count = result.count
    for i in 0..&lt;count/2 {
      result.swapAt(i, count - ((i + 1) as Int))
    }
    return result
}</pre></div>
<p class="maodian"></p><h2>四、lexicographicallyPrecedes</h2>
<p>返回一个布尔值,该值指示在字典顺序(字典)中该序列是否在另一个序列之前,使用给定条件语句比较元素。</p>
<div class="jb51code"><pre class="brush:java;">let list =
let list2 =
let ret1 = list.lexicographicallyPrecedes(list2)
let ret2 = list2.lexicographicallyPrecedes(list)
print(ret1, ret2)
---console
true false
</pre></div>
<p><code>Sequence</code>协议源码</p>
<div class="jb51code"><pre class="brush:java;">@inlinable
public func lexicographicallyPrecedes&lt;OtherSequence: Sequence&gt;(
    _ other: OtherSequence
) -&gt; Bool where OtherSequence.Element == Element {
    return self.lexicographicallyPrecedes(other, by: &lt;)
}</pre></div>
<div class="jb51code"><pre class="brush:java;">@inlinable
public func lexicographicallyPrecedes&lt;OtherSequence: Sequence&gt;(
    _ other: OtherSequence,
    by areInIncreasingOrder: (Element, Element) throws -&gt; Bool
) rethrows -&gt; Bool
where OtherSequence.Element == Element {
    var iter1 = self.makeIterator()
    var iter2 = other.makeIterator()
    while true {
      if let e1 = iter1.next() {
      if let e2 = iter2.next() {
          if try areInIncreasingOrder(e1, e2) {
            return true
          }
          if try areInIncreasingOrder(e2, e1) {
            return false
          }
          continue // Equivalent
      }
      return false
      }
      return iter2.next() != nil
    }
}</pre></div>
<p>以上就是Swift高阶函数contains&nbsp;allSatisfy&nbsp;reversed&nbsp;lexicographicallyPrecedes用法示例的详细内容,更多关于Swift高阶函数用法的资料请关注琼殿技术社区其它相关文章!</p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>Swift函数提前返回实例详解</li><li>Swift如何调用Objective-C的可变参数函数详解</li><li>C语言中调用Swift函数实例详解</li><li>深入理解swift变量和函数</li><li>详解Swift中的函数及函数闭包使用</li><li>浅谈在Swift中关于函数指针的实现</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: Swift高阶函数contains allSatisfy reversed lexicographicallyPrecedes用法示例