更新/更改Swift中枚举的rawValue

Pra*_*man 5 enums ios swift

以下面的枚举为例

enum Name : String {

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

}
Run Code Online (Sandbox Code Playgroud)

我可以这样做吗?

将一个"案例"的原始值更改为其他内容.

Name.Me = "Prak"
Run Code Online (Sandbox Code Playgroud)

将新案例添加到ENUM

Name.Last = "Benjamin"
Run Code Online (Sandbox Code Playgroud)

谢谢!

vad*_*ian 6

简答:不,你不能.

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

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

参考:Swift语言指南:枚举


Pra*_*p K 6

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

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)
Run Code Online (Sandbox Code Playgroud)