當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Swift AsyncStream drop(while:)用法及代碼示例


實例方法

drop(while:)

從基本異步序列中省略元素,直到給定的閉包返回 false,之後它會遍曆所有剩餘的元素。

聲明

@preconcurrency func drop(while predicate: @escaping (Self.Element) async -> Bool) -> AsyncDropWhileSequence<Self>

返回值

一個異步序列,它跳過基本序列中的值,直到提供的閉包返回 false

參數

predicate

一個閉包,它接受一個元素作為參數並返回一個布爾值,指示是否從修改後的序列中刪除該元素。

詳述

使用drop(while:) 從異步序列中省略元素,直到接收到的元素滿足您指定的條件。

在此示例中,名為 Counter 的異步序列生成從 110Int 值。 drop(while:) 方法導致修改後的序列忽略接收到的值,直到遇到可被 3 整除的值:


let stream = Counter(howHigh: 10)
    .drop { $0 % 3 != 0 }
for await number in stream {
    print("\(number) ", terminator: " ")
}
// prints "3 4 5 6 7 8 9 10"

在謂詞返回 false 之後,序列不再執行它,從那時起,序列按原樣傳遞其底層序列中的元素。

可用版本

iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 AsyncStream drop(while:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。