【发布时间】:2017-05-19 10:07:03
【问题描述】:
简介:
我在我的应用程序的某些地方引入了Result framework (antitypical)。例如,给定这个函数:
func findItem(byId: Int, completion: (Item?,Error?) -> ());
foo.findItem(byId: 1) { item, error in
guard let item = item else {
// Error case
handleError(error!)
return;
}
// Success case
handleSuccess(item)
}
我用 Result 来实现它:
func findItem(byId: Int, completion: Result<Item,Error>) -> ());
foo.findItem(byId: 1) { result in
swith result {
case let success(item):
// Success case
handleSuccess(item)
case let failure(error):
// Error case
handleError(error!)
}
}
问题 在成功案例不返回任何结果的情况下,实现结果的正确方法是什么?比如:
func deleteItem(byId: Int, completion: (Error?) -> ());
foo.deleteItem(byId: 1) { error in
if let error = error {
// Error case
handleError(error)
return;
}
// Success case
handleSuccess()
}
在 java 中我会实现一个 Result 在 Swift 中执行此操作的正确方法是什么
【问题讨论】:
-
这里有什么问题吗?
-
如何使用Result实现第二个例子
-
仍然没有收到您的问题。