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