[英]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.