当前位置: 首页 > article >正文

Swift 开发教程系列 - 第5章:集合类型

Swift 提供了几种常用的集合类型,用于存储和管理一组数据。这些集合类型包括数组(Array)、字典(Dictionary)和集合(Set)。本章将介绍它们的使用方法及常见操作。

5.1 数组(Array)

数组是一组有序的数据集合,用于存储同一类型的数据。数组中的元素可以通过索引访问。

定义数组

可以使用 Array 或 [Element] 来定义数组,其中 Element 是数组元素的数据类型。


// 创建一个整数数组
var numbers: [Int] = [1, 2, 3, 4, 5]

// 或者省略类型,由 Swift 自动推断
var names = ["Alice", "Bob", "Charlie"]

数组操作


// 添加元素
numbers.append(6)

// 插入元素
numbers.insert(0, at: 0)   // 在索引 0 处插入 0

// 访问元素
let firstElement = numbers[0]   // 获取第一个元素

// 修改元素
numbers[0] = 10

// 移除元素
numbers.remove(at: 1)      // 移除索引为 1 的元素
numbers.removeLast()       // 移除最后一个元素

print(numbers)

5.2 字典(Dictionary)

字典是无序的键值对集合,用于快速查找数据。字典的每个元素包含一个唯一的键和一个与之关联的值。

定义字典

可以使用 Dictionary<Key, Value> 或 [Key: Value] 来定义字典,其中 Key 是键的类型,Value 是值的类型。


// 创建一个字典,键是字符串,值是整数
var ages: [String: Int] = ["Alice": 25, "Bob": 30, "Charlie": 35]

// 或者让 Swift 自动推断类型
var scores = ["Math": 90, "Science": 85, "History": 88]

字典操作


// 添加或修改值
ages["Dave"] = 28
ages["Alice"] = 26    // 更新键 "Alice" 的值

// 访问值
if let aliceAge = ages["Alice"] {
    print("Alice's age is \(aliceAge)")
} else {
    print("Alice not found")
}

// 移除值
ages.removeValue(forKey: "Charlie")

print(ages)

5.3 集合(Set)

集合是一种无序的、唯一的数据集合,适合用于去重操作和快速查找。

定义集合

可以使用 Set 定义集合,其中 Element 是集合元素的数据类型。集合元素必须是唯一的。


// 创建一个字符串集合
var fruits: Set<String> = ["Apple", "Banana", "Cherry"]

// 或者让 Swift 自动推断类型
var numbers: Set = [1, 2, 3, 4, 5]

集合操作


// 添加元素
fruits.insert("Orange")

// 移除元素
fruits.remove("Banana")

// 检查是否包含某个元素
if fruits.contains("Apple") {
    print("Fruits set contains Apple")
}

// 集合运算
let oddNumbers: Set = [1, 3, 5, 7, 9]
let evenNumbers: Set = [0, 2, 4, 6, 8]
let primeNumbers: Set = [2, 3, 5, 7]

// 并集
let unionSet = oddNumbers.union(evenNumbers)

// 交集
let intersectionSet = oddNumbers.intersection(primeNumbers)

// 差集
let differenceSet = oddNumbers.subtracting(primeNumbers)

print(unionSet)
print(intersectionSet)
print(differenceSet)

通过本章的学习,你已掌握 Swift 中集合类型的基本使用和操作。集合类型在处理数据时非常高效,能够帮助你快速完成数据查找、修改等操作。下一章我们将介绍 Swift 中的枚举和结构体的使用。


http://www.kler.cn/a/384650.html

相关文章:

  • vue2与vue3的全局通信插件,如何实现自定义的插件
  • Docker安装XXL-JOB分布式调度任务
  • 【HCIP园区网综合拓扑实验】配置步骤与详解(未施工完,持续更新中)
  • Ubuntu笔记-auto remove
  • Day13杨辉三角
  • 06 网络编程基础
  • Docker 常用命令详解(详细版)
  • Flutter 中的那些设计模式的写法(持续更新)
  • VSCode 1.82之后的vscode server离线安装
  • ISME Comm | 机器学习和深度学习在微生物组研究中的应用
  • 牛客sql题目总结(1)
  • RK3568平台(基础篇)selinux内核安全
  • JVM基本结构
  • 工业相机常用功能之白平衡及C++代码分享
  • 天锐绿盾加密软件与Ping32全面对比:为您的数据保驾护航,哪款加密工具更适合您?
  • 解析Go切片:为何按值传递时会发生改变?|得物技术
  • Python OpenCV 傅里叶变换
  • 纯血鸿蒙系统 HarmonyOS NEXT自动化测试实践
  • leetcode 3254 长度为 K 的子数组的能量值 I 中等
  • redhat5与ubuntu上Makefile语法区别
  • DevOps业务价值流:架构设计最佳实践
  • 【K8S问题系列】Kubernetes Pod节点CrashLoopBackOff 状态【已解决】
  • 技术干货丨Inspire Cast 如何避免自动网格划分失败?
  • 汽车免拆诊断案例 | 2017款凯迪拉克XT5车组合仪表上的指针均失灵
  • Git+Jenkins基本使用
  • 环保在线监测平台:环境健康云监测,大数据助力生态文明建设