Apple 在 Swift 5 中引入了 Result
类型。它是具有两种情况的通用枚举:
public enum Result<Success, Failure: Error> {
case success(Success), failure(Failure)
}
我个人习惯在网络调用中使用两个单独的完成 success: Completion
和 failure: Completion
,但据我现在所见,Apple 插入我们使用单一完成Result
类型,然后在里面执行开关。那么这种使用 Result
的方法有什么优势呢?因为在很多情况下我可以省略错误处理并且不写这个switch
。谢谢。
最佳答案
当 Result
为 failure
时,您不应该忽略这些情况。你不应该用 Result
来做,也不应该用失败的闭包来做。您应该处理错误。
无论如何,引入Result
类型是为了简化完成处理程序。您可以使用单个闭包来处理成功或失败(如果两个单独的闭包更好,则基于主要意见)。 Result
也是为错误处理而设计的。您可以简单地创建自己的符合 Error
的 enum
,然后您可以创建自己的错误案例。
关于Swift 5 结果类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55573364/