XCode 16.4 日本語化計画
その要素への非同期、順次、反復アクセスを提供する型。
protocol AsyncSequence<Element, Failure>
AsyncSequence は Sequence 型に似ており、値のリストを一つずつステップ実行できますが、非同期性が追加されています。AsyncSequence は、最初に使用する際に、すべての値、一部の値、またはまったく値が使用できない場合があります。代わりに、await を使用して、値が使用可能になったときに受け取ります。
Sequence と同様に、AsyncSequence は通常、for await-in ループを使用して反復処理します。ただし、呼び出し元が値を待機しなければならない場合があるため、await キーワードを使用して下さい。以下の例は、1 から howHigh 値までの Int 値を生成するカスタムの AsyncSequence である Counter を反復処理する方法を示しています。
for await number in Counter(howHigh: 10) {
print(number, terminator: " ")
}
// Prints "1 2 3 4 5 6 7 8 9 10 "
AsyncSequence は値を生成したり保持したりするのではなく、値へのアクセス方法を定義するだけです。値の型を Element という関連型として定義するとともに、AsyncSequence は makeAsyncIterator() メソッドを定義します。このメソッドは AsyncIterator 型のインスタンスを返します。標準の IteratorProtocol と同様に、AsyncIteratorProtocol は要素を生成するための単一の next() メソッドを定義します。違いは、AsyncIterator は next() メソッドを async として定義し、呼び出し元は await キーワードを使用して次の値を待機する必要があることです。
AsyncSequence は、標準ライブラリ内の基本的な Sequence が提供する操作をモデルにして、あなたが受信した要素を処理するためのメソッドも定義しています。メソッドには、単一の値を返すものと、別の AsyncSequence を返すものの 2 つのカテゴリがあります。
単一値のメソッドは、for await-in ループを必要とせず、代わりに単一の await 呼び出しで済みます。例えば、contains(_:) メソッドは、与えられた値が AsyncSequence 内に存在するかどうかを示すブール値を返します。前の例の Counter シーケンスを仮定すると、1 行の呼び出しでシーケンスメンバーの存在をテストできます。
let found = await Counter(howHigh: 10).contains(5) // true
別の AsyncSequence を返すメソッドは、メソッドの意味に固有の型を返します。たとえば、.map(_:) メソッドは AsyncMapSequence を返します (map(_:) メソッドに提供したクロージャがエラーを throw できる場合は、AsyncThrowingMapSequence を返します)。返されたシーケンスは、シーケンスの次のメンバーを積極的に待機しないため、呼び出し元はいつ処理を開始するかを決定できます。通常、これらのシーケンスは、最初に使用した基本の AsyncSequence と同様に、for await-in を使用して反復処理します。以下の例では、map(_:) メソッドは、Counter シーケンスから受け取った各 Int を String に変換します。
let stream = Counter(howHigh: 10)
.map { $0 % 2 == 0 ? "Even" : "Odd" }
for await s in stream {
print(s, terminator: " ")
}
// Prints "Odd Even Odd Even Odd Even Odd Even Odd Even "
func makeAsyncIterator() -> Self.AsyncIterator
この非同期シーケンスの要素を生成する非同期反復子を作成します。
必須
associatedtype AsyncIterator : AsyncIteratorProtocol
この非同期シーケンスの要素を生成する非同期反復子の型。
必須
protocol AsyncIteratorProtocol
シーケンスの値を 1 つずつ非同期的に提供する型。
この非同期シーケンスによって生成される要素の型。
必須
func contains(Self.Element) async rethrows -> Bool
非同期シーケンスに与えられた要素が含まれているかどうかを示すブール値を返します。
func contains(where: (Self.Element) async throws -> Bool) async rethrows -> Bool
非同期シーケンスに、与えられた述語を満たす要素が含まれているかどうかを示すブール値を返します。
func allSatisfy((Self.Element) async throws -> Bool) async rethrows -> Bool
非同期シーケンスによって生成されたすべての要素が与えられた述語を満たしているかどうかを示すブール値を返します。
func first(where: (Self.Element) async throws -> Bool) async rethrows -> Self.Element?
指定された述語を満たすシーケンスの最初の要素を返します。
func min() async rethrows -> Self.Element?
比較可能な要素の非同期シーケンス内の最小要素を返します。
func min(by: (Self.Element, Self.Element) async throws -> Bool) async rethrows -> Self.Element?
与えられた述語を要素間の比較として使用して、非同期シーケンス内の最小要素を返します。
func max() async rethrows -> Self.Element?
比較可能な要素の非同期シーケンス内の最大要素を返します。
func max(by: (Self.Element, Self.Element) async throws -> Bool) async rethrows -> Self.Element?
与えられた述語を要素間の比較として使用して、非同期シーケンス内の最大要素を返します。
func prefix(Int) -> AsyncPrefixSequence<Self>
基本非同期シーケンスの最初の要素を含む、指定された最大長さまでの非同期シーケンスを返します。
基本非同期シーケンスの初期要素を含む、指定された最大長までの非同期シーケンス。
func prefix(while: (Self.Element) async -> Bool) rethrows -> AsyncPrefixWhileSequence<Self>
与えられた述語を満たす基本シーケンスの最初の連続要素を含む非同期シーケンスを返します。
struct AsyncPrefixWhileSequence
与えられた述語を満たす基本シーケンスの最初の連続要素を含む非同期シーケンス。
与えられた、エラーを throw する述語を満たす基本シーケンスの最初の連続要素を含む非同期シーケンスを返します。
struct AsyncThrowingPrefixWhileSequence
与えられた、エラーを throw する述語を満たす基本シーケンスの最初の連続要素を含む非同期シーケンス。
throw するタスクが完了した後の結果。
throw しないタスクが完了した後の結果。
var result: Result<Success, Failure>
throw するタスクが完了した後の結果またはエラー。
タスクがキャンセルされたことを示すエラー。
このタスクをキャンセルします。
タスクの実行を停止すべきかどうかを示すブール値。
タスクの実行を停止すべきかどうかを示すブール値。
static func checkCancellation() throws
タスクがキャンセルされた場合エラーを throw します。
  廃止  
現在のタスクがキャンセルされた場合に直ちに呼び出されるキャンセルハンドラを使用して操作を実行します。
現在のタスクを一時停止し、他のタスクの実行を許可します。
static func sleep(nanoseconds: UInt64) async throws
現在のタスクを少なくともナノ秒単位で与えられた期間中断します。
与えられた期間、現在のタスクを中断します。
static func sleep<C>(until: C.Instant, tolerance: C.Instant.Duration?, clock: C) async throws
許容範囲内で与えられた期限まで現在のタスクを一時停止します。
static func == (Task<Success, Failure>, Task<Success, Failure>) -> Bool
2 つの値が等しいかどうかを示すブール値を返します。
static func != (Self, Self) -> Bool
2 つの値が等しくないかどうかを示すブール値を返します。
ハッシュ値です。
この値の必須コンポーネントを与えられたハッシュ関数に入力してハッシュします。
typealias Group   廃止  
typealias Handle   廃止  
typealias Priority   廃止  
static func CancellationError() -> CancellationError   廃止  
func getResult() async -> Result<Success, Failure>   廃止  
func get() async throws -> Success   廃止  
static func sleep(UInt64) async   廃止  
static func suspend() async   廃止  
static func withCancellationHandler<T>(handler: () -> Void, operation: () async throws -> T) async rethrows -> T   廃止  
与えられた throw する操作を、新しい 非構造化 のトップレベルタスクの一部として非同期的に実行します。
与えられた throw しない操作を、新しい 非構造化 トップレベルタスクの一部として非同期的に実行します。
init(name: String?, priority: TaskPriority?, operation: sending () async -> Success)
与えられた throw しない操作を、新しい 非構造化 トップレベルタスクの一部として非同期的に実行します。
init(name: String?, priority: TaskPriority?, operation: sending () async throws -> Success)
与えられた throw する操作を、新しい 非構造化 のトップレベルタスクの一部として非同期的に実行します。
func escalatePriority(to: TaskPriority)
このタスクのタスク priority (優先度) を手動で newPriority に拡大します。   Beta  
func get() async -> Success   廃止  
タスクの作成中に設定されている場合、現在のタスクの人間が読める名前を返します。
  Beta  
与えられた throw する操作を、新しい 非構造化の分離された トップレベルタスクの一部として非同期的に実行します。
与えられた throw しない操作を、新しい 非構造化の分離された トップレベルタスクの一部として非同期的に実行します。
与えられた throw する操作を、新しい 非構造化の分離された トップレベルタスクの一部として非同期的に実行します。
与えられた throw しない操作を、新しい 非構造化の分離された トップレベルタスクの一部として非同期的に実行します。
呼び出しスレッド/タスクのコンテキストで新しいタスクを作成し、すぐに実行を開始します。
  Beta  
呼び出しスレッド/タスクのコンテキストで新しいタスクを作成し、すぐに実行を開始します。
  Beta  
廃止されました。ソース互換性の理由からのみ利用可能です。
  廃止  
廃止されました。ソース互換性の理由からのみ利用可能です。
  廃止  
  廃止  
Copyable
Success が Copyable に準拠し, Success が Escapable に準拠し, Success が Sendable に準拠し, Failure が Error に準拠している場合準拠します。
Success が Copyable に準拠し, Success が Escapable に準拠し, Success が Sendable に準拠し, Failure が Error に準拠している場合準拠します。
Success が Copyable に準拠し, Success が Escapable に準拠し, Success が Sendable に準拠し, Failure が Error に準拠している場合準拠します。
SendableMetatype
動的に作成された子タスクを含むグループ。
動的な数の子タスクを含めることができる新しいスコープを開始します。
struct ThrowingTaskGroup
Throw し、動的に作成された子タスクを含むグループ。
動的な数の throw する子タスクを含めることができる新しいスコープを開始します。
struct TaskPriority
タスクの優先度。
struct DiscardingTaskGroup
動的に作成された子タスクを含む破棄するグループ。
動的な数の子タスクを含めることができる新しいスコープを開始します。
struct ThrowingDiscardingTaskGroup
動的に作成された子タスクを含む throw する破棄のグループ。
動的な数の子タスクを含めることができる新しいスコープを開始します。
struct UnsafeCurrentTask
現在のタスクへの安全でない参照。