Swift 枚举
封面图
•
2025-10-22
•
Swift
0
0
0
0
在 Swift 中,**枚举(Enumeration)** 是一种定义一组相关值的类型。它允许你为一组相关的值赋予一个统一的类型名称,并且可以包含方法、属性以及关联值等。 --- ## ✅ 1. 基本语法 ```swift enum 颜色 { case 红色 case 绿色 case 蓝色 } ``` 你可以用 `case` 来定义枚举的各个成员。 --- ## ✅ 2. 使用枚举 ```swift let color = 颜色.红色 switch color { case .红色: print("这是红色") case .绿色: print("这是绿色") case .蓝色: print("这是蓝色") } ``` --- ## ✅ 3. 关联值(Associated Values) 枚举的每个成员可以携带额外的信息(即关联值)。 ```swift enum 货币 { case 美元(Double) case 欧元(Double) case 日元(Int) } let price = 货币.美元(10.99) switch price { case .美元(let amount): print("金额是 $\(amount)") case .欧元(let amount): print("金额是 €$amount") case .日元(let amount): print("金额是 ¥$amount") } ``` --- ## ✅ 4. 原始值(Raw Values) 枚举也可以有原始值,比如整数、字符串等。 ```swift enum 状态: String { case 成功 = "OK" case 失败 = "ERROR" case 进行中 = "PROCESSING" } let status = 状态.成功 print(status.rawValue) // 输出 "OK" ``` 或者使用整数: ```swift enum 等级: Int { case 一 = 1 case 二 = 2 case 三 = 3 } ``` --- ## ✅ 5. 自动递增原始值 Swift 可以自动为枚举的原始值分配递增值: ```swift enum 月份: Int { case 一月 = 1 case 二月 case 三月 // ... } ``` 此时 `二月` 的值是 `2`,`三月` 是 `3`,依此类推。 --- ## ✅ 6. 枚举方法和计算属性 你可以为枚举定义方法和计算属性: ```swift enum 车辆 { case 汽车 case 自行车 case 公交车 func 描述() -> String { switch self { case .汽车: return "这是一辆汽车" case .自行车: return "这是一辆自行车" case .公交车: return "这是一辆公交车" } } } let car = 车辆.汽车 print(car.描述()) // 输出 "这是一辆汽车" ``` --- ## ✅ 7. 递归枚举(Recursive Enumerations) Swift 支持递归枚举,也就是枚举的成员可以包含自身类型的值。 ```swift indirect enum 表达式 { case 数字(Int) case 加法(表达式, 表达式) case 乘法(表达式, 表达式) } let expr = 表达式.加法(表达式.数字(2), 表达式.乘法(表达式.数字(3), 表达式.数字(4))) ``` > 注意:需要使用 `indirect` 关键字来声明递归枚举。 --- ## ✅ 8. 总结 | 特性 | 说明 | |------|------| | 定义 | 使用 `enum` 关键字 | | 成员 | 使用 `case` 定义 | | 关联值 | 每个成员可携带额外信息 | | 原始值 | 可设置为 `Int`、`String` 等 | | 方法/属性 | 可以添加方法和计算属性 | | 递归 | 使用 `indirect` 实现递归枚举 | --- 如果你有具体的应用场景或想了解某个功能的详细用法,可以告诉我,我可以帮你进一步解释!
上一篇:
Swift 闭包
下一篇:
Swift 结构体
标题录入,一次不能超过6条
返回顶部
留言
留言
评论