在Swift中,枚举中包含原始值,而类和结构中包含默认值。有什么不同?有人可以帮我解释一下吗?

例如枚举的原始值(来自Office Swift文档)

enum ASCIIControlCaracter: Character {
    case Tab = "\t"
    case LineFeed = "\n"
    case CarriageReturn = "\r"
}

最佳答案

Apple docs


  原始值
  
  关联值中的条形码示例显示了
  枚举可以声明它们存储不同的关联值
  类型。作为关联值的替代,枚举案例可以
  预先填充了默认值(称为原始值),这些默认值是
  所有相同的类型。


所以我想是一样的。

另一方面,对于“默认值”,您可能是指未设置任何值的枚举情况的默认值,例如:

enum TestEnum: Int  {
    case A
    case B
}


在这里,TestEnum.A的默认值是0TestEnum.B的默认值是1

原始值是指枚举实例的实际值(在枚举类型中,在本例中为Int):

enum TestEnum: Int  {
    case A
    case B = 3
}


在这里,TestEnum.A具有0的默认值(也是原始值),而TestEnum.B具有原始值3(不再是默认值)。

10-07 19:50
查看更多