如何更改枚举中的参数值(Swift)

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)

任何的想法?

Yaw*_*war 5

不要将枚举视为可变类型.你会更开心.在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)