首页 > 解决方案 > Swift 编译器错误:枚举案例有一个元组作为关联值,但这里有几种模式

问题描述

在 Xcode 11.4 beta 3 中构建一个项目,我在一个枚举上得到了这个 Swift 编译器错误:

枚举案例有一个元组作为关联值,但这里有几个模式,隐式地对模式进行元组并尝试匹配它

源代码:

switch result {
case .error(let err):
    //
case .value(let staff, let locations):  // <-- error on this line
    //
}

Result.error是具有和的关联值的通用枚举.value。在这种情况下,关联的值是一个元组。

public enum Result<T> {
    case value(T)
    case error(Error)
}

不记得以前看到过这个错误,并且搜索它没有产生任何结果。有任何想法吗?

标签: swift

解决方案


我发现您还可以通过将关联值更像是一个元组来处理这个错误,方法是将其包装在一组额外的括号中:

switch result {
case .error(let err):
    //
case .value((let staff, let locations)):  
    //
}

推荐阅读