是否可以通过扩展将关联值添加到现有 Swift 枚举?

Is it possible to add associated values to an existing Swift enum via extensions?

在 Swift 3 中,假设有一个系统定义的枚举(即我不控制源代码),如下所示:

enum currentState: Int {
  case enabled
  case disabled
  case unknown
}

是否可以通过扩展专门为现有成员添加关联值?

不,你不能。想想看,currentState 枚举真的只是一个受限制的 Int。它甚至不是一个对象。

如果您需要更复杂的枚举,您需要包装给您的那个。

注意:Swift 扩展通常不能向基本类型添加状态。例如。这也不起作用:

class A {}
extension A { var value : Int = 32 }