枚举关联值介绍
Swift 的枚举中可以把其他类型的关联值和成员值一起存储起来使用,这样使你连同成员值一起存储额外的自定义信息,并且你每次在代码中使用该枚举成员时,还可以修改这个关联值。
你可以定义 Swift 枚举来存储任意类型的关联值,如果需要的话,每个枚举成员的关联值类型可以各不相同。
比如一个比较大小的结果的枚举:
enum ResultCode {
case bigger(String?)
case smaller(String?)
case equal(Int?)
}
以上代码可以理解为一个 ResultCode 的枚举类型,它的两个成员值是具有 (String?) 类型关联值的 bigger,small 。另外一个成员是具有 Int 类型关联值的 equal
然后我们可以创建一个新的 ResultCode 实例,例如:
var result1 = ResultCode.bigger("bigger")
上面例子创建了一个名为 result1 的变量,并将 ResultCode.bigger 赋值给它,关联的值为 “bigger”
result1 = .smaller("smaller")
代码中,原始的 ResultCode.bigger 和其整数关联值被新的 ResultCode.smaller 和其字符串关联值所替代。 ResultCode类型的常量和变量可以存储一个 .bigger 或者一个 .smaller , 但是在同一时间只能存储这两个值其中的一个。
像一般的枚举一样,可以使用一个 switch