如何将结果与swift中的成功进行比较

如何将结果与swift中的成功进行比较,swift,Swift,从中,它有一个关于如何使用“Result in swift”的示例,如下所示: fetchUnreadCount1(from: "https://www.hackingwithswift.com") { result in switch result { case .success(let count): print("\(count) unread messages.") case .failure(let err

从中,它有一个关于如何使用“Result in swift”的示例,如下所示:

fetchUnreadCount1(from: "https://www.hackingwithswift.com") { result in
    switch result {
    case .success(let count):
        print("\(count) unread messages.")
    case .failure(let error):
        print(error.localizedDescription)
    }
}
if case .success = result {
    print("Success")
}
我的问题是,上面的开关案例是哪种,为什么不编译:

 if (result == .success) {
     print ("Success")
 }
我得到一个错误,说无法转换类型的值

“Result”为预期的参数类型 “DispatchTimeoutResult”

您可以在
if
语句中使用
case
如下:

fetchUnreadCount1(from: "https://www.hackingwithswift.com") { result in
    switch result {
    case .success(let count):
        print("\(count) unread messages.")
    case .failure(let error):
        print(error.localizedDescription)
    }
}
if case .success = result {
    print("Success")
}
您可以在
if
语句中使用
case
如下:

fetchUnreadCount1(from: "https://www.hackingwithswift.com") { result in
    switch result {
    case .success(let count):
        print("\(count) unread messages.")
    case .failure(let error):
        print(error.localizedDescription)
    }
}
if case .success = result {
    print("Success")
}

我不确定错误原因,但要检查具有关联值的枚举的条件,必须使用switch。在这种情况下,可以使用
if case
,if case.success(let count)=result{然后使用
if
子句中的
count
变量我不确定错误原因,但要检查具有关联值的枚举的条件,必须使用开关。在这种情况下,可以使用
if case
,if case.success(let count)=result{然后在
if
子句中使用
count
变量