Dar*_*ius 3 parameters enums swift
就像你们所有人一样,我是斯威夫特的新人.在创建之后我不知道如何在枚举中更改参数.所以.有SimpleProtocol和SimpleEnum,它符合这个协议.
//SimpleProto goes here
protocol ExampleProtocol {
var simpleDescription: String { get }
mutating func adjust()
}
//And SimpleEnum goes here
enum SimpleEnum : ExampleProtocol {
case first(Int)
case second(Int)
case third(Int)
var simpleDescription: String {
get {
var begining = "This is SimpleEnum with arg value : "
switch self {
case let .first(arg):
begining += "One"
case let .second(arg):
begining += "Two"
case let .third(arg):
begining += "Three"
}
return begining
}
}
mutating func adjust() {
//here i want to increase the value of enum's parameter on five
}
}
Run Code Online (Sandbox Code Playgroud)
我可以想象一个解决方案,但我认为它不够好.主要思想是重建自我,增加价值:
case let .first(arg):
self = SimpleEnum.first(arg + 5)
Run Code Online (Sandbox Code Playgroud)
任何的想法?
不要将枚举视为可变类型.你会更开心.在adjust函数中,只返回一个新的枚举值:
enum SimpleEnum {
...
func adjust() -> SimpleEnum {
switch self {
case let .first(arg):
return .first(arg + 5)
case let .second(arg):
return .second(arg + 5)
case let .third(arg):
return .third(arg + 5)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2297 次 |
| 最近记录: |