【问题标题】:Update / change the rawValue of a enum in Swift在 Swift 中更新/更改枚举的 rawValue
【发布时间】:2016-06-05 03:15:41
【问题描述】:

以下面的枚举为例

enum Name : String {

  case Me = "Prakash"
  case You = "Raman"

}

我可以做以下吗

将一个“案例”的原始值更改为其他值。

Name.Me = "Prak"

向 ENUM 添加一个新案例

Name.Last = "Benjamin"

谢谢!

【问题讨论】:

    标签: ios swift enums


    【解决方案1】:

    不,你不能。相反,您可以重新定义枚举以包含关联值而不是原始值。

    enum Name {
        case Me(String)
        case You(String)
        case Last(String)
    }
    
    var me = Name.Me("Prakash")
    print(me)
    me = .You("Raman")
    print(me)
    me = .Last("Singh")
    print(me)
    

    【讨论】:

    • 啊 - 我想这解决了其中的一部分。我能不能创造更多的“案例”
    • 您不能创建新的枚举案例..但是您可以使用 Last(String) 案例来携带不同的值。你不能创建一个全新的案例,比如案例中间(字符串)。您必须预先定义所有案例,然后将不同的值关联到它。
    【解决方案2】:

    简短回答:不,你不能。

    枚举类型在编译时进行评估。
    无法在运行时更改原始值或添加案例。

    唯一的动态行为是使用关联值。

    参考:Swift Language Guide: Enumerations

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多