Swift之enum的语法和功能 | CSDN创作打卡

本文深入探讨Swift中的枚举(enum),包括其语法、枚举成员遍历、原始值的使用、递归枚举、嵌套枚举以及与之相关的属性和方法。枚举在Swift中扮演着重要角色,提供了强大的功能,如关联值、自动原始值赋值等,使得枚举能适应多种复杂场景。
摘要由CSDN通过智能技术生成

一、前言

  • 枚举是为一组相关值定义的一个通用类型,Swift 枚举的功能非常强大,使它比 OC 的枚举应用于更广泛的场景。
  • 在本文,我们去了解 enum 的语法和能力。

二、枚举语法

  • 使用 enum 关键字引入枚举,其整个定义放在一对大括号内:
enum CompassPoint {
   
    case north
    case south
    case east
    case west
}
  • 与 C 和 Objective-C 不同,Swift 的枚举成员在创建时不会被赋予一个默认的整型值。

三、枚举成员遍历

  • 令枚举遵循 CaseIterable 协议,Swift 会生成一个 allCases 属性,用于返回枚举中所有成员的集合。
enum Beverage: CaseIterable {
   
    case coffee, tea, juice
}

for beverage in Beverage.allCases {
   
    print(beverage)
}

// coffee
// tea
// juice
关联值
  • 关联值是将附加信息附加到枚举成员的一种非常好的方式。Swift 枚举可以存储任意类型的关联值,例子如下:
enum Barcode {
   
    case upc(Int, Int, Int, Int)
    case qrCode(String)
}
  • 上面的代码定义一个名为 Barcode 的枚举类型,其中一个成员 upc 具有(Int, Int, Int, Int) 类型的关联值,另一个成员 qrCode 具有 String 类型的关联值。可以通过模式匹配来访问关联值,例子如下:
var productBarcode = .qrCode("ABCDEFGHIJKLMNOP")
switch productBarcode {
   
case let .upc(numberSystem, manufacturer, product, check):
    print("UPC: \(numberSystem), \(manufacturer), \(product), \(check).")
case let .qrCode(productCode):
    print("QR code: \(productCode).")
}
// 打印“QR code: ABCDEFGHIJKLMNOP.”

四、原始值

  • 枚举成员可以被默认值预填充,这些默认值被称为原始值,注意:原始值的类型必须相同。
enum ASCIIControlCharacter: Character {
   
    case tab = "\t"
   
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值