Swift枚举类型进阶指南:关联值、原始值与模式匹配全掌握

第一章:Swift 数据类型 详解

Swift 是一门类型安全的编程语言,能够在编译期检测类型错误,从而提升代码的稳定性和可维护性。它支持多种内置数据类型,开发者可以根据需求选择合适的数据结构。

基本数据类型

Swift 提供了常见的基础类型,包括整数、浮点数、布尔值和字符。这些类型在声明时通常通过类型推断自动识别。
  • Int:表示有符号整数,例如年龄、计数等
  • Double:64位浮点数,适合高精度小数运算
  • Bool:布尔类型,取值为 true 或 false
  • Character:单个字符,如 "A" 或 "😊"
// 示例:变量声明与类型推断
let score: Int = 100          // 显式声明为整数
let price = 9.99              // 自动推断为 Double
let isActive = true           // 推断为 Bool
let symbol: Character = "⭐"   // 字符类型

字符串与集合类型

Swift 的 String 类型支持 Unicode,并提供丰富的操作方法。集合类型包括数组、字典和集合,均是结构体实现,具有值语义。
类型描述示例
Array有序集合,元素可重复[String]()
Dictionary键值对集合[String: Int]()
Set无序唯一元素集合Set<String>()
// 字符串拼接
let name = "Swift"
let greeting = "Hello, \(name)!"  // 插值输出:Hello, Swift!

// 数组操作
var fruits = ["Apple", "Banana"]
fruits.append("Orange")  // 添加元素

可选类型(Optional)

Swift 使用可选类型来处理值可能缺失的情况,语法为 Type?。必须解包后才能使用其内部值。
var phoneNumber: String? = nil  // 可能无值
phoneNumber = "123-456-7890"

if let number = phoneNumber {
    print("拨打电话:\(number)")  // 安全解包
}

第二章:枚举基础与关联值深度解析

2.1 枚举定义与关联值语法详解

在 Swift 中,枚举通过 enum 关键字定义,用于表示一组相关联的常量。基本语法如下:
enum CompassPoint {
    case north
    case south
    case east
    case west
}
上述代码定义了一个表示方向的枚举。Swift 还支持为枚举成员绑定**关联值**,使每个成员可以携带额外的数据。
关联值的使用场景
例如,处理网络请求结果时,成功返回数据,失败则携带错误信息:
enum NetworkResult {
    case success(data: Data)
    case failure(error: Error)
}
success 和 failure 分别关联了 Data 和 Error 类型的值,可在 switch 语句中解包使用。
  • 枚举提升类型安全性,替代字符串或整数常量
  • 关联值允许枚举成员动态携带不同类型的数据
  • 结合模式匹配,可清晰分离业务逻辑分支

2.2 使用关联值构建灵活的数据模型

在现代数据建模中,关联值(Associated Values)为枚举类型赋予了携带额外数据的能力,极大增强了类型的表达力。通过将元数据与状态一同封装,开发者可以构建出语义更清晰、结构更灵活的模型。
关联值的基本结构
以订单状态为例,不同状态下包含的信息不同:

enum OrderStatus {
    case pending
    case shipped(trackingNumber: String, carrier: String)
    case delivered(on: Date)
    case cancelled(reason: String)
}
上述代码中,shipped 携带物流信息,delivered 包含送达时间。每个关联值自动成为该枚举实例的一部分,可通过模式匹配提取。
模式匹配提取数据
使用 switch 语句安全解包关联值:

switch order.status {
case .shipped(let tracking, let carrier):
    print("物流单号: $tracking) by $carrier)")
case .delivered(let date):
    print("送达时间: $date)")
default:
    break
}
此机制避免了冗余的类继承结构,用轻量级代数数据类型实现复杂状态建模,提升类型安全性与可维护性。

2.3 关联值在实际业务场景中的应用

订单状态与操作权限的动态绑定
在电商系统中,订单的不同状态需要关联特定的操作权限。通过关联值,可将状态枚举与可用操作映射,提升代码可维护性。

enum OrderStatus {
    case pending(paymentMethod: String)
    case shipped(carrier: String, trackingNumber: String)
    case cancelled(reason: String)
}
上述定义中,pending 携带支付方式信息,shipped 包含物流详情,cancelled 记录取消原因。每个状态附加上下文数据,便于后续处理。
用户认证场景的数据携带
使用关联值区分登录方式并携带凭证:
  • 第三方登录:携带 token 和用户 ID
  • 手机号登录:附带区号和验证码
  • 邮箱登录:绑定邮箱地址和加密凭证
这种模式避免了冗余字段,使类型安全与业务逻辑紧密结合,显著降低运行时错误风险。

2.4 模式匹配解构关联值的技巧

在现代编程语言中,模式匹配结合解构赋值能显著提升处理复杂数据结构的效率。通过精准匹配数据形状,可直接提取所需字段。
基本解构语法

let point = (3, 7);
if let (x, y) = point {
    println!("坐标: ({}, {})", x, y);
}
该代码将元组 point 解构为 x 和 y,仅当结构匹配时执行块内逻辑。
嵌套结构的匹配
  • 支持多层嵌套解构,如结构体中包含枚举
  • 可结合守卫条件(guard)增强匹配精度
  • 通配符 _ 可忽略无关字段
实际应用场景
场景匹配模式用途
API响应解析Result::Ok(data)提取成功数据
事件处理Event::Click { x, y }获取点击坐标

2.5 关联值的类型安全与编译时检查

Swift 的枚举关联值在设计上具备严格的类型安全机制,每个关联值的类型在定义时即被固定,确保只有符合声明类型的值才能被存储。
类型安全的实现方式
例如,以下枚举为不同操作绑定特定类型的关联数据:
enum Operation {
    case transfer(amount: Double, to: String)
    case deposit(amount: Double)
    case withdraw(reason: String)
}
上述代码中,transfer 必须传入 Double 和 String 类型,编译器会强制校验参数数量与类型,任何不匹配的调用都将导致编译失败。
编译时检查的优势
  • 防止运行时类型错误
  • 提升代码可维护性
  • 支持 IDE 静态分析与自动补全
这种机制使得开发者能在编码阶段发现逻辑偏差,而非依赖运行时调试。

第三章:原始值枚举的高级用法

3.1 原始值的声明与自动赋值机制

在编程语言中,原始值(如整型、布尔、浮点等)的声明通常伴随自动赋值机制。多数现代语言会在变量声明时提供默认初始化,避免未定义行为。
常见原始类型的默认值
  • int 类型默认为 0
  • bool 类型默认为 false
  • float 类型默认为 0.0
代码示例:Go 中的自动赋值
var age int
var active bool
var score float64

fmt.Println(age, active, score) // 输出: 0 false 0
上述代码中,尽管未显式赋值,Go 自动将数值类型初始化为零值。该机制依赖于内存分配时的清零操作,确保变量始终处于确定状态。
初始化流程图
变量声明 → 类型识别 → 内存分配 → 零值写入 → 可用状态

3.2 整型与字符串原始值的转换实践

在Go语言中,整型与字符串之间的转换是常见操作,主要通过 strconv 包实现。正确掌握这些转换方法有助于提升数据处理的准确性与程序健壮性。
整型转字符串
使用 strconv.Itoa() 可将整数转换为十进制字符串形式:
package main

import (
    "fmt"
    "strconv"
)

func main() {
    num := 123
    str := strconv.Itoa(num)
    fmt.Println(str) // 输出: 123
}
Itoa 是 int to ASCII 的缩写,适用于 int 类型转 string。
字符串转整型
使用 strconv.Atoi() 可解析字符串为整数:
str := "456"
num, err := strconv.Atoi(str)
if err != nil {
    fmt.Println("转换失败")
}
fmt.Println(num) // 输出: 456
该函数返回整数值和错误标识,需检查 err 防止非法输入导致运行时异常。

3.3 原始值在配置与状态管理中的典型应用

配置项的不可变性保障
在系统配置中,原始值(如字符串、布尔值、数字)常用于定义不可变的环境参数。由于其按值传递且不可修改的特性,能有效防止运行时意外篡改。
  • 布尔型原始值控制功能开关
  • 字符串定义API地址或日志级别
  • 数值设定超时时间或重试次数
状态管理中的高效比较
现代前端框架依赖原始值进行快速浅比较。例如,在React中使用useState管理布尔状态:
const [isLoading, setIsLoading] = useState(false);
// 触发更新
setIsLoading(true);
上述代码中,isLoading作为原始值,可在渲染过程中通过严格相等判断实现精确的条件控制,避免引用类型带来的误判。
类型用途优势
boolean加载状态比较高效,内存占用小
number计数器状态天然支持不可变操作

第四章:模式匹配与控制流优化

4.1 switch语句中的枚举模式匹配

在现代编程语言中,`switch`语句结合枚举类型可实现清晰的模式匹配逻辑。通过将枚举值作为`case`分支条件,能够提升代码可读性与维护性。
基本语法结构
switch color := getColor(); color {
case Red:
    fmt.Println("选中红色")
case Green:
    fmt.Println("选中绿色")
case Blue:
    fmt.Println("选中蓝色")
default:
    fmt.Println("未知颜色")
}
上述代码中,getColor()返回一个枚举类型的值,每个case对应一个明确的枚举成员。编译器可在编译期验证所有枚举值是否被处理,增强类型安全性。
优势分析
  • 避免使用多个if-else判断,简化控制流
  • 支持编译期检查,防止遗漏枚举值
  • 提升代码语义清晰度,便于团队协作

4.2 if-case与guard-case的简洁写法

Swift 提供了 `if-case` 和 `guard-case` 语法,用于在模式匹配中解包枚举值,使代码更清晰简洁。
if-case:条件性解包
当需要根据枚举值执行特定逻辑时,`if-case` 是理想选择:
enum Result {
    case success(String)
    case failure(Error)
}

let result = Result.success("OK")

if case .success(let message) = result {
    print("成功信息: $message)")
}
该代码判断 `result` 是否为 `.success` 模式,并提取其关联值 `message`。若匹配成功,则执行后续逻辑。
guard-case:提前退出保障
在函数入口验证状态时,`guard-case` 可提前退出,避免深层嵌套:
func handle(result: Result) {
    guard case .success(let message) = result else {
        print("处理失败,中断执行")
        return
    }
    print("处理成功: $message)")
}
若 `result` 不是 `.success`,则执行 `else` 分支并返回,确保后续代码只在匹配成功时运行。这种写法提升了可读性和安全性。

4.3 复合条件下的模式匹配策略

在复杂数据处理场景中,单一匹配规则难以满足需求,需引入复合条件进行精准筛选。通过逻辑组合(AND、OR、NOT)构建多维度匹配表达式,可显著提升匹配精度。
逻辑组合示例
// 使用结构体与标签定义复合条件
type MatchRule struct {
    Protocol string `match:"http|https"`
    Port     int    `match:"80,443"`
    Method   string `match:"GET|POST"`
}
// 匹配规则:协议为http或https,端口为80或443,且请求方法为GET或POST
上述代码定义了一组复合匹配条件,通过标签声明多个合法取值,运行时解析器将字段值与标签规则进行逻辑或(|)和逻辑与(,)组合判断。
匹配优先级对照表
操作符优先级说明
NOT1最高优先级,用于排除特定模式
AND2组合多个必须同时满足的条件
OR3满足任一条件即可触发匹配

4.4 模式匹配提升代码可读性与安全性

简化条件逻辑
模式匹配通过结构化数据的直接解构,替代冗长的条件判断,显著提升代码清晰度。例如,在处理枚举或代数数据类型时,可精确匹配值与类型。
switch value := data.(type) {
case int:
    fmt.Println("整数:", value)
case string:
    fmt.Println("字符串:", value)
default:
    panic("不支持的类型")
}
该代码使用类型断言匹配变量类型,避免手动类型检查和类型转换,减少运行时错误。
增强类型安全性
模式匹配在编译期验证分支完整性,防止遗漏情况。结合不可变绑定,确保变量在匹配后不会被意外修改。
  • 消除空指针风险:通过非空模式排除 nil 值
  • 强制穷尽性检查:编译器要求覆盖所有可能模式
  • 减少防御性编程:无需频繁添加 if-nil 判断

第五章:总结与展望

技术演进的持续驱动
现代软件架构正加速向云原生和边缘计算融合。以 Kubernetes 为核心的调度平台已成标配,但服务网格(如 Istio)与 Serverless 框架(如 Knative)的深度集成仍面临冷启动延迟与调试复杂度高的挑战。
  • 某头部电商平台通过引入 eBPF 技术优化服务间通信,将延迟降低 38%
  • 金融级系统普遍采用多活容灾架构,结合 Chaos Engineering 实现故障注入自动化测试
  • AI 模型推理逐步下沉至边缘节点,TensorRT + ONNX Runtime 成为主流部署方案
可观测性的新范式
传统三支柱(日志、指标、追踪)正在被 OpenTelemetry 统一。以下为典型 Go 微服务注入追踪的代码片段:

import (
    "go.opentelemetry.io/otel"
    "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
)

func main() {
    handler := http.HandlerFunc(yourHandler)
    tracedHandler := otelhttp.NewHandler(handler, "your-service")
    http.Handle("/api", tracedHandler)
}
未来基础设施趋势
技术方向当前成熟度典型应用场景
WebAssembly 在边缘运行时早期采用CDN 自定义逻辑嵌入
机密计算(Confidential Computing)试验阶段跨组织数据联合分析

部署流程演进示意图

CI → 测试覆盖率检查 → 安全扫描 → 准生产灰度 → 金丝雀发布 → 全量

每一步均集成策略引擎(OPA)进行合规校验

Swift中enum自定义类型的实现 在Swift中枚举类型非常强大,内置的实现可以大大减少我们手敲的代码量.下面碰巧就有这么一个需求:Person类里面有一个type属性,其值包含2个内容,一个是name,类型为String,另一个是logo,类型也为字符串,不过表现为绘文字emoji.因为结构或类的静态属性都可以用点访问符来直接访问,所以我们可以轻易写出如下代码:class Person{ struct type{ 阅读详情

相关推荐

基于STM32的智能衣柜系统开发实战(附完整源码与硬件设计)

本文详细介绍了基于STM32的智能衣柜系统开发实战,包括硬件设计、软件架构和云端功能实现。系统具备实时温湿度监控、自动加热除湿、紫外线杀菌等核心功能,通过STM32F103C8T6主控芯片和ESP8266无线模块实现智能控制。附完整源码与硬件设计,适合科技爱好者和开发者参考。

peach的博客 782

Swift 枚举(enumeration)类型总结

Swift 枚举(enumeration)类型总结枚举类型定义了一组相关值的共同类型,比如东、西、南和北具有的共同类型就是方向,可以定义一个方向的枚举类型,包含它们。枚举类型能够让你在代码中使用类型安全的的值。

泗哥的博客 1640

【速通版!语义通信基础与前沿学习计划】

🧠语义通信基础与前沿学习计划

dally2的博客 1413

Swift基础语法 - 枚举

枚举成员可以使用的默认值预先对应,这个默认值叫做:原始值

假装自己很用心的博客 1749

2021年软件测试面试题大全

简述测试流程: 1、阅读相关技术文档(如产品PRD、UI设计、产品流程图等)。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例(等价类划分法、边界值分析法等)。 5、用例评审(主要参与人员:开发、测试、产品、测试leader)。 6、开发提交代码至SVN或者GIT ,配管搭建测试环境。 7、执行测试用例,记录发现的问题。 8、验证bug与回归测试。 9、编写测试报告。 10、产品上线。 补充测试用例设计过程: 根据需求得出测试需求 设计测试方

hard_days的博客 20万+

VMware 虚拟机里连不上网的五种解决方案

在VMware虚拟机里的虚拟机系统连接不上网络 首先,注意查看适配器选项里的网络连接这两个网络连接是否存在,如果不存在可以重新装一下VM 如果存在,连不上网 解决办法一: 虚拟机设置里,找到“网络适配器”,右边的网络连接选择“NAT 模式”,如果不行的话再linux系统。还是不行的话接着看第二种解决方案。 解决方法二: 可能原因是VMware NET Service...

墨轩 18万+

swift enum高级用法

https://blog.youkuaiyun.com/itchosen/article/details/77749152 本文是一篇详细且具有实战意义的教程,涵盖几乎所有枚举(Enum)知识点,为你解答Swift中枚举的应用场合以及使用方法。 和switch语句类似,Swift中的枚举乍看之下更像是C语言中枚举的进阶版本,即允许你定义一种类型,用于表示普通事情中某种用例。不过深入挖掘之后,凭借Swift...

sundaysme的博客 2406

优快云 2

2

qq_62260432的博客 5237

swift 枚举类型

//1.枚举类型 enum MethodType :String{ case get = "get" case post = "post" case put = "put" case delete = "delete" } //2.创建枚举 let type1 : MethodType = .get let type2 = MethodType.post

robinson_911的专栏 462

【YOLOv11】014、YOLOv11模型导出:PyTorch到ONNX格式转换与优化

摘要:本文详细介绍了如何将PyTorch训练的YOLOv11模型高效转换为ONNX格式。重点包括:分离模型特征提取与后处理、设置动态维度、优化ONNX算子、验证转换正确性等关键步骤。作者分享了实际项目中的经验教训,如版本对齐、算子兼容性处理、后处理分离等实用技巧,并推荐使用onnx-simplifier工具优化模型。文章强调模型转换是一个需要反复调试的过程,建议保留转换记录形成知识库,以提高部署效率并避免常见错误。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 306

LeRobot X-VLA:首个适用于任意机器人、任意任务的软提示机器人基础模型

X-VLA是一种基于软提示的视觉-语言-动作模型,通过可学习嵌入向量编码不同机器人配置,实现跨平台统一控制。该框架采用两阶段训练:先在29万次多平台任务中学习通用策略,再通过微调少量参数(仅1%)适配新机器人。实验表明,0.9B参数的X-VLA在6个仿真和3个真实平台上表现优异,如LIBERO任务达93%成功率,布料折叠任务100%完成。其核心创新是将硬件差异视为"任务",用软提示引导Transformer处理异构数据,为机器人基础模型提供可扩展方案。

2506_90492529的博客 1241

Swift-枚举,枚举值匹配、遍历、关联值、原始值递归枚举

Swift 中的枚举,不必给每一个枚举成员提供一个值。 如果给枚举成员提供一个值(称为原始值),则该值的类型可以是字符串、字符,或是一个整型值或浮点数。 1. 枚举语法 使用 enum 关键词来创建枚举并且把它们的整个定义放在一对大括号内: enum SomeEnumeration { // 枚举定义放在这里 } 使用 case 关键字来定义一个新的枚举成员值: ...

DevXue的博客 1846

YOLOv8改进 | Conv篇 | 轻量级下采样方法ContextGuided(大幅度涨点)

ContextGuided通过创新的局部-全局协同机制,解决了传统下采样方法中细节丢失与上下文缺失的核心痛点。实验证明其在YOLOv8上可实现最高2.6%的mAP提升,且计算开销增加不足5%。这种即插即用的设计为实时目标检测系统提供了新的优化方向。创新启示:轻量化不代表简单裁剪,智能信息融合才是未来方向!下一步探索与Transformer结合构建混合架构多尺度上下文融合机制3D点云中的扩展应用资源获取完整训练代码:[GitHub链接]预训练模型:[Google Drive链接]讨论话题。

QQ_778132974的博客 290

《Swift 编程语言》中文版精读:Swift 枚举的语法、关联值与原始值全面指南

枚举是 Swift 中一种将一组相关值组织为共同类型的一等(first-class)类型,它同时支持关联值(associated values)与原始值(raw values),并能以类型安全的方式配合 `switch`、模式匹配、协议遵循等机制工作。本文以《Swift 编程语言》中文版(SwiftGG 维护的开源仓库)中的 [Enumerations.md](https://link.gitco

gitblog_00033的博客 460

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Swift基础语法-枚举,枚举原始值,枚举相关值,switch提取枚举关联值

1. Swift枚举基本概念 Swift中的枚举比OC中的枚举强大, 因为Swift中的枚举是一等类型, 它可以像类和结构体一样增加属性和方法 格式: enum Method{ case 枚举值 }enum Method{ case Add case Sub case Mul case Div }2. 枚举的基本使用 可以枚举值可以连着写, 但是要以逗

CD豪 4907

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

swift基础语法(20- 枚举,枚举原始值,枚举相关值,switch提取枚举关联值)

Swift枚举: Swift中的枚举比OC中的枚举强大, 因为Swift中的枚举是一等类型, 它可以像类和结构体一样增加属性和方法 格式: enum Method{ case 枚举值 } enum Method{ case Add case Sub case Mul case Div 可以连在一起写 case Add, Sub, ...

abc48765的博客 479

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

闲聊Swift的枚举关联值

枚举,字面上理解,就是把东西一件件列出来。在许多计算机语言中,枚举都是一种重要的数据结构。使用枚举可以使代码更简洁,语义性更强,更加健壮。Swift语言也不例外。但和其他语言相比,Swift的枚举有一个关联值的概念。什么是关联值呢?关联值是枚举项存放的额外的数据,这些额外的数据可以使枚举描述更复杂的结构 ,实现更复杂的需求。下面定义了一个枚举,其中的每个枚举项都具有关联值。在上述枚举定义中,begin项关联了一个类型为String的值,枚举项表示开始,其关联值进一步表示是什么具体过程。progress。

m0_65012566的博客 2700

【Swift枚举进阶指南】:掌握高效编程的5大核心技巧

掌握Swift枚举用法的进阶技巧,提升代码安全与可读性。涵盖关联值、原始值、递归枚举等五大核心方法,适用于状态管理、错误处理等场景。结构清晰,扩展性强,值得收藏。

QuickTrans的博客 834

Swift 中枚举~关联值

Swift 中枚举~关联值用法

1861

Swift 枚举

1.枚举的定义 枚举在C/C++/c#中,是一个被命名的整型常数的集合, 枚举在日常生活中很常见。 例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,SATURDAY,就是一个枚举。 在 Swift 中,枚举类型是一等(first-class)类型。它们采用了很多在传统上只被类(class)所支持的特性,例如计算型属性(computed properties),用于提供枚举值的附加信息,实例方法(instance method...

俊而不逊的博客 1367

Swift 枚举关联值

枚举关联值介绍Swift 的枚举中可以把其他类型的关联值和成员值一起存储起来使用,这样使你连同成员值一起存储额外的自定义信息,并且你每次在代码中使用该枚举成员时,还可以修改这个关联值。你可以定义 Swift 枚举来存储任意类型的关联值,如果需要的话,每个枚举成员的关联值类型可以各不相同。比如一个比较大小的结果的枚举:enum ResultCode { case bigger(String?)

lxhxhxhxh的博客 2830

Swift 枚举类型合成 `Comparable` 一致性(SE-0266):基于声明顺序与关联值字典序的自动比较

SE-0266(《Synthesized `Comparable` conformance for `enum` types》)为 Swift 语言引入了枚举类型**自动合成 `Comparable` 一致性**的能力:只要枚举不含原始值(raw value)、且所有关联值自身均满足 `Comparable`,编译器即可按 **case 声明顺序**(后者大于前者)、并在关联值存在时按**关联值的

gitblog_06877的博客 192

【Swift开发必修课】:枚举与模式匹配的黄金组合应用

掌握Swift枚举用法,提升代码安全与可读性。本文详解枚举在状态管理、选项解析等场景的应用,结合模式匹配实现高效分支控制。深入讲解关联值、原始值与递归枚举的实战技巧,助你写出更优雅的Swift代码,值得收藏。

LogicGlow的博客 266

Swift learning part 8 - 枚举

文章目录枚举语法使用 Switch 语句匹配枚举值枚举成员的遍历关联值原始值原始值的隐式赋值使用原始值初始化枚举实例递归枚举 枚举为一组相关的值定义了一个共同的类型,使你可以在你的代码中以类型安全的方式来使用这些值。 C 语言中,枚举会为一组整型值分配相关联的名称。Swift 中的枚举更加灵活,不必给每一个枚举成员提供值,若提供则该值的类型可以是字符串、字符、整型或浮点数。此外,枚举成员可以指定任...

毛毛虫 1612

Swift-枚举类型以及原始值,与Switch匹配

1、在swift中的枚举类型如下: Swift中的枚举比OC中的枚举强大, 因为Swift中的枚举是一等类型, 它可以像类和结构体一样增加属性和方法 enum Method{ case Add case Sub case Mul case Div } var m0:Method = .Add var m1 = Method.Sub 在C语言中

MinggeQingchun的博客 1397
上一篇: PHP对接支付宝避坑指南(20年经验总结的8大常见错误)
下一篇: 【Swift URLSession进阶指南】:掌握高效网络请求的10个核心技巧
quickcode
博客等级 码龄19年 146粉丝 1996原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值