Gio*_*ioE 7 enums switch-statement swift mutating-function
我一直在这里寻找很多问题,我发现一个类似标题的枚举案例开关没有在类型中找到,但对我来说没有解决方案.
我想使用带有自身变异的枚举来解决问题,在个别状态下,下一个交通灯颜色是什么.
enum TrafficLights {
mutating func next() {
switch self {
case .red:
self = .green
case .orange:
self = .red
case .green:
self = .orange
case .none:
self = .orange
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已将所有案例作为可能的选项,它仍然返回错误:
在'TrafficLights'类型中找不到枚举"案例"
pka*_*amb 11
将Int转换为自定义枚举时,我遇到了同样错误的问题:
switch MyEnum(rawValue: 42) {
case .error:
// Enum case `.error` not found in type 'MyEnum?'
break
default:
break
}
Run Code Online (Sandbox Code Playgroud)
问题是MyEnum(rawValue: 42)
返回一个可选项.打开它或提供非可选项以允许打开枚举:
switch MyEnum(rawValue: 42) ?? MyEnum.yourEnumDefaultCase {
case .error:
// no error!
break
default:
break
}
Run Code Online (Sandbox Code Playgroud)
这些情况必须在函数外部声明:
enum TrafficLights {
case green
case red
case orange
case none
mutating func next() {
switch self {
case .red:
self = .green
case .orange:
self = .red
case .green:
self = .orange
case .none:
self = .orange
}
}
}
Run Code Online (Sandbox Code Playgroud)
建议:- 进行枚举 - Apple 文档
归档时间: |
|
查看次数: |
5532 次 |
最近记录: |