XCode 16.4 日本語化計画
このインスタンスの結果を各購読者に厳密に 1 回だけ公開するか、結果が失敗を示している場合は直ちに失敗する Combine 発行者。
var publisher: Result<Success, Failure>.Publisher { get }
Failure が Error に準拠している場合に使用できます。
以下の例では、goodResult は整数値 1 で成功した結果を提供します。結果の発行者に接続された、sink 購読者は出力 1 を受信し、その後に正常完了 (Subscribers.Completion.finished) を受け取ります。
let goodResult: Result<Int, MyError> = .success(1)
goodResult.publisher
.sink(receiveCompletion: { print("goodResult done: \($0)")},
receiveValue: { print("goodResult value: \($0)")} )
// Prints:
// goodResult value: 1
// goodResult done: finished
常に単一の値を公開する Just 発行者とは対照的に、この発行者は、結果が /Swift/Result/failure の場合、値を全く送信せず、その代わりエラーで終了することがあります。次の例では、badResult はカスタムエラーを包み込んだ失敗の結果です。この結果の発行者に接続された sink 購読者は、直ちに終了 (Subscribers.Completion.failure(_:)) を受け取ります。
struct MyError: Error, CustomDebugStringConvertible {
var debugDescription: String = "MyError"
}
let badResult: Result<Int, MyError> = .failure(MyError())
badResult.publisher
.sink(receiveCompletion: { print("badResult done: \($0)")},
receiveValue: { print("badResult value: \($0)")} )
// Prints:
// badResult done: failure(MyError)
このインスタンスの結果を各購読者に厳密に 1 回だけ公開するか、結果が失敗を示している場合は直ちに失敗する Combine 発行者の型。