Swift 中的枚举(Enum)

简介: Swift 中的枚举(Enum)

Swift 中的枚举(Enum)是一种强大的数据类型,它可以用来表示一组相关的值。每个枚举定义了一组相关的 cases,每个 case 可以有相关联的值。

以下是一个简单的枚举示例:

enum Color {
   
    case red
    case blue
    case green
    case custom RGBA(r: Int, g: Int, b: Int, a: Int)
}

在这个例子中,Color 枚举有四个 cases:redbluegreencustom。其中,custom case 有一个关联值元组 (r: Int, g: Int, b: Int, a: Int)

Swift 中的模式匹配主要用于在 switch 语句中匹配枚举 cases 或其他类型的值。以下是如何使用模式匹配处理上述枚举的例子:

let color: Color = .red

switch color {
   
case .red:
    print("The color is red.")
case .blue:
    print("The color is blue.")
case .green:
    print("The color is green.")
case .custom(let r, let g, let b, let a):
    print("The color is custom with RGB values \(r), \(g), \(b) and alpha value \(a).")
}

在这个例子中,switch 语句根据 color 的值进行模式匹配。对于每个 case,我们提供了相应的代码块来处理匹配的情况。对于 .custom case,我们使用了模式匹配中的解构绑定(destructuring binding)来获取其关联值。

注意,Swift 的 switch 语句要求穷尽所有可能的 cases,除非你明确标记某个 case 为默认情况或者使用 default case。这有助于避免遗漏某些情况并提高代码的健壮性。

此外,Swift 还支持 if 和 guard 语句中的模式匹配,但这些情况下通常不涉及枚举的匹配。例如:

if case .red = color {
   
    print("The color is red.")
}

在这个例子中,if 语句使用模式匹配来检查 color 是否等于 .red。如果相等,则执行代码块。

目录
相关文章
|
12天前
|
Swift iOS开发
Swift 枚举
10月更文挑战第28天
23 0
|
6月前
|
存储 定位技术 Swift
【Swift 开发专栏】Swift 中的枚举与结构体
【4月更文挑战第30天】本文探讨了Swift中的枚举与结构体,包括它们的定义、用法及差异。枚举用于表示有限状态或选项,如游戏状态;结构体适合表示具有特定属性和行为的数据,如商品信息。两者均可定义属性和方法,作为函数参数。枚举以整数存储,不可继承,结构体按属性存储且可继承,更灵活。理解两者特点有助于提升编程效率。
35 0
|
存储 编译器 Swift
Swift-进阶 08:枚举enum
Swift-进阶 08:枚举enum
621 1
Swift-进阶 08:枚举enum
|
Swift
Swift实用小册07:枚举的创建、使用、遍历、关联值、原始值
Swift实用小册07:枚举的创建、使用、遍历、关联值、原始值
420 0
Swift实用小册07:枚举的创建、使用、遍历、关联值、原始值
|
存储 编译器 Swift
Swift5.0 - day2-流程控制、函数、枚举(下)
Swift5.0 - day2-流程控制、函数、枚举(下)
81 0
Swift5.0 - day2-流程控制、函数、枚举(下)
|
编译器 Swift C++
Swift5.0 - day2-流程控制、函数、枚举(上)
Swift5.0 - day2-流程控制、函数、枚举(上)
138 0
Swift5.0 - day2-流程控制、函数、枚举(上)
【Swift4】(7) 枚举 | 应用
【Swift4】(7) 枚举 | 应用
116 0
|
存储 编译器
Swift5.1—递归枚举
Swift5.1—递归枚举
162 0