ResultK 提供了适用于 Swift 无类型 throws
的 Result
。 ResultK 的 Result
类型没有第二个类型参数来指定错误类型,这与 antitypical/Result 不同。
let a: Result<Int> = Result { try primeOrThrow(2) }
switch a {
case let .success(value):
print(value)
case let .failure(error):
print(error)
}
Result
是一个 monad。 map
和 flatMap
可用于 Result
。
let b: Result<Int> = Result(3)
let sum: Result<Int> = a.flatMap { a in b.map { b in a + b } } // Result(5)
将以下内容添加到你的 Package.swift 文件中的 dependencies
中。
.package(
url: "https://github.com/koher/ResultK.git",
from: "0.2.0-alpha"
)
github "koher/ResultK" "master"