Swift return 关联的枚举值或一行中的 nil

Swift return associated enum value or nil in one line

Case 语句并不总是直观的,尤其是在 switch 语句之外。

是否可以 return 枚举案例的关联值 只有 如果该案例匹配,否则为零,在一行中。这是代码:

struct Something<B> {
    enum Base {
        case common(B)
        case extended([B])
    }

    let base:Base

    var common:B? {
        switch base {
        case .common(let common) :
            return common
        default:
            return nil
        }
    }
}

看看 common 如何有很多样板文件只是为了 return common 的关联值(如果存在)。我希望语法类似于此(或什至更简单):

var common:B? {
    return case base as .common(let common)
}

(目前正在使用 Swift 4)

这个有点短

var common:B? {
    if case let .common(common) = base { return common }
    return nil
}