我开始使用Result作为返回类型,并且我最喜欢它,但是当我没有任何要成功返回的内容时,我就无所适从该case语句。有提示吗?
我所能想到的只是let _ = 0
func createAppDirectory(_ searchPath: FileManager.SearchPathDirectory) -> Result<Void,Error>
...
switch createAppDirectory(searchPath) {
case .success(_): let _ = 0
case .failure(let error): return .failure(error)
}
我开始认为,当成功类型为Void时,Result可能不合适。
顺便说一句createAppDirectory仅创建Library/Application Support/<Bundle ID>
。如果成功,则没有返回值。
答案 0 :(得分:3)
使用break语句:
switch createAppDirectory(searchPath) {
case .success:
break
case .failure(let error): return .failure(error)
}
正如Mojtaba所指出的,如果您不打算为枚举的特定情况使用关联的值,则可以直接跳过它。我已经修改了上面的答案,从(_)
案例中删除了.success
答案 1 :(得分:3)
只需忽略它:
count_of_masterfolder = len(folder["Master folder"])
count_of_childfolder = len(folder["Child folder"])
如果在故障情况下绝对不希望过度劳累,请在作用域的开始处case .success: break
:
gaurd
答案 2 :(得分:1)
如果只有严重错误,Result
是不合适的。
更好的模式是throw
错误并且什么也不返回
func createAppDirectory(_ searchPath: FileManager.SearchPathDirectory) throws
...
do {
try createAppDirectory(searchPath)
} catch { print(error)}
答案 3 :(得分:0)
返回简单的无效结果,
CheckConstraint