这是一个带有相关值的常见枚举.
enum MultiplierType {
case width(Double)
case height(Double)
case xxxxx1(Double)
case xxxxx2(Double)
case xxxxx3(Double)
var value: Double {
switch self {
// Normal way.
case let .width(value):
return value
case let .height(value):
return value
case let .xxxxx1(value):
return value
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何做到这一点?
var value: Double {
switch self {
// How to get the value in one case?
case let .width(value), .height(value), .xxx:
return value
}
}
Run Code Online (Sandbox Code Playgroud)
要么
var value: Double {
switch self {
// How to get the value in one case?
case let .width, .height, .xxx (value):
return value
}
}
Run Code Online (Sandbox Code Playgroud)
获得相关价值的最优雅方式是什么?
vac*_*ama 13
您可以将多个枚举值放在同一case行中,但您必须将其let移入():
var value: Double {
switch self {
case .width(let value), .height(let value), .xxxxx1(let value):
return value
}
}
Run Code Online (Sandbox Code Playgroud)
您可能希望将每个enum值放在单独的行上:
var value: Double {
switch self {
case .width(let value),
.height(let value),
.xxxxx1(let value):
return value
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这与enum使用相关值的s 一样优雅.没有明确列出enums ,就无法获得相关值.
您只能组合具有相同类型的关联值的同一行中的值,并且所有值都必须绑定到相同的变量名称.这样,在下面的代码中,您知道value绑定以及它的类型是什么,无论哪个enum模式匹配.
| 归档时间: |
|
| 查看次数: |
621 次 |
| 最近记录: |