繁体   English   中英

快速返回关联的枚举值或在一行中为nil

[英]Swift return associated enum value or nil in one line

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

当该枚举个案匹配时才可以返回该枚举个案的关联值,否则为nil。 这是代码:

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有很大的样板刚刚返回,如果共同存在关联的值。 我希望语法与此类似(或更简单):

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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM