簡體   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