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

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.mrgr.cn/news/66510.html

相关文章:

  • 您与此网站之间建立的连接不安全解决方法
  • Python | Leetcode Python题解之第537题复数乘法
  • Docker Hub 镜像加速器
  • 黑龙江某涝区泵闸站自动化、信息化改造项目案例
  • Shiro权限刷新
  • 【算法】Prim最小生成树算法
  • oracle数据检查方法
  • 多client向同一个pushgateway推送指标被覆盖问题
  • 解密抖音推荐算法:个性化内容背后的技术奥秘
  • 【MongoDB】MongoDB的聚合(Aggregate、Map Reduce)与管道(Pipline) 及索引详解(附详细案例)
  • 一篇文章速通Java开发Stream流(流水线开发附斗地主小游戏综合案例)
  • 一文快速预览经典深度学习模型(一)——CNN、RNN、LSTM、Transformer、ViT
  • Vue:计算属性
  • JavaScript 变量作用域与函数调用机制:var 示例详解
  • SEO
  • 一个最简单的网络编程
  • OpenID Connect 和 OAuth 2.0 有什么不同?
  • Java继承练习
  • C++《list的模拟实现》
  • 通讯录(静态)
  • js基础篇笔记 (万字速通)
  • 【安装配置教程】二、VMware安装并配置ubuntu22.04
  • Kane-Mele X4Y2Z6材料自旋电子和谷电子理论研究
  • CSS的配色
  • 【数据分享】1981-2024年我国逐日平均气温栅格数据(免费获取)
  • 网络学习笔记---客户端和服务端