インスタンスメソッド


prefix(while:)


与えられた、エラーを throw する述語を満たす基本シーケンスの最初の連続要素を含む非同期シーケンスを返します。


iOS 13.0+ iPadOS 13.0+ Mac Catalyst 13.0+ macOS 10.15+

tvOS 13.0+ visionOS 1.0+ watchOS 6.0+

@preconcurrency
  func prefix(while predicate: @escaping (Self.Element) async throws -> Bool) rethrows -> 
  AsyncThrowingPrefixWhileSequence<Self>




パラメータ


predicate

非同期シーケンスの要素をその引数として取り、変更されたシーケンスに要素を含めるかどうかを示すブール値を返す、エラーを throw するクロージャ。



戻り値


与えられた述語を満たす基本シーケンスの要素を順番に含む、非同期シーケンス。述語がエラーを throw した場合、シーケンスにはエラー発生前に生成された値のみが含まれます。



議論


prefix(while:) を使用すると、基本シーケンスの要素が指定した条件を満たしている間、値が生成されます。述語クロージャが false を返すかエラーを throw すると、変更されたシーケンスは終了します。


以下の例では、Counter という非同期シーケンスが 1 から 10 までの Int 値を生成します。prefix(_:) メソッドにより、変更されたシーケンスは 8 未満の値をそのまま渡しますが、5 で割り切れる値を受け取るとエラーを throw します。


do {
    let stream = try Counter(howHigh: 10)
        .prefix {
            if $0 % 5 == 0 {
                throw MyError()
            }
            return $0 < 8
        }
    for try await number in stream {
        print(number, terminator: " ")
    }
} catch {
    print("Error: \(error)")
}
// Prints "1 2 3 4 Error: MyError() "




以下も見よ


要素の選択


func prefix(Int) -> AsyncPrefixSequence<Self>

基本非同期シーケンスの最初の要素を含む、指定された最大長さまでの非同期シーケンスを返します。


struct AsyncPrefixSequence

基本非同期シーケンスの初期要素を含む、指定された最大長までの非同期シーケンス。


func prefix(while: (Self.Element) async -> Bool) rethrows -> AsyncPrefixWhileSequence<Self>

与えられた述語を満たす基本シーケンスの最初の連続要素を含む非同期シーケンスを返します。


struct AsyncPrefixWhileSequence

与えられた述語を満たす基本シーケンスの最初の連続要素を含む非同期シーケンス。


struct AsyncThrowingPrefixWhileSequence

与えられた、エラーを throw する述語を満たす基本シーケンスの最初の連続要素を含む非同期シーケンス。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ