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
}
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
}