当前位置:首页 > 科技  > 软件

Swift 数组、字典和集合

来源: 责编: 时间:2024-01-15 09:19:11 268观看
导读本文我们将介绍 Swift 中的变量、常量和数据类型。如果你尚未安装 Xcode 和配置 Swift 开发环境,请您先阅读这篇文章。接下来,我们启动 Xcode,然后选择 "File" > "New" > "Playground"。创建一个新的 Playground 并命名

Nfh28资讯网——每日最新资讯28at.com

本文我们将介绍 Swift 中的变量、常量和数据类型。如果你尚未安装 Xcode 和配置 Swift 开发环境,请您先阅读这篇文章。Nfh28资讯网——每日最新资讯28at.com

接下来,我们启动 Xcode,然后选择 "File" > "New" > "Playground"。创建一个新的 Playground 并命名为 "Collections"。Nfh28资讯网——每日最新资讯28at.com

Arrays

数组是一种用于存储相同类型元素的有序集合,是 Swift 中常用的数据结构之一。让我们通过比较 Swift 和 TypeScript 中的示例,了解如何使用数组以及它们的基本操作。Nfh28资讯网——每日最新资讯28at.com

创建一个数组

Swift Code

var numbers = [1, 2, 3, 4, 5]// 或者 var numbers: [Int] = [1, 2, 3, 4, 5]var fruits = ["Apple", "Banana", "Orange"]// 或者 var fruits: [String] = ["Apple", "Banana", "Orange"]

TypeScript Code

let numbers = [1, 2, 3, 4, 5];// 或者 let numbers: number[] = [1, 2, 3, 4, 5];let fruits = ["Apple", "Banana", "Orange"];// 或者 let fruits: string[] = ["Apple", "Banana", "Orange"];

访问和修改数组元素

在 Swift 和 TypeScript 中,您可以通过下标访问和修改数组元素。Nfh28资讯网——每日最新资讯28at.com

Swift Code

let firstNumber = numbers[0]// firstNumber: 1numbers[1] = 10

TypeScript Code

const firstNumber = numbers[0];// firstNumber: 1numbers[1] = 10;

添加元素

在 Swift 中,使用 append 方法添加元素。而在 TypeScript 中,是使用 push 方法。Nfh28资讯网——每日最新资讯28at.com

Swift Code

fruits.append("Grapes")// fruits: ["Apple", "Banana", "Orange", "Grapes"]

TypeScript Code

fruits.push("Grapes");// fruits: ["Apple", "Banana", "Orange", "Grapes"]

删除元素

在 Swift 中,使用 remove(at:) 方法删除指定位置的元素。而在 TypeScript 中,是使用 splice 方法。Nfh28资讯网——每日最新资讯28at.com

Swift Code

fruits.remove(at: 1)// fruits: ["Apple", "Orange", "Grapes"]

TypeScript Code

fruits.splice(1, 1);// fruits: ["Apple", "Orange", "Grapes"]

获取数组长度

在 Swift 中,使用 count 属性获取数组长度。而在 TypeScript 中,是使用 length 属性。Nfh28资讯网——每日最新资讯28at.com

Swift Code

let count = fruits.count

TypeScript Code

const count = fruits.length;

遍历数组元素

在 Swift 中,可以使用 for-in 遍历数组。而在 TypeScript 中,可以使用 for-of 循环。Nfh28资讯网——每日最新资讯28at.com

Swift Code

for fruit in fruits {    print("I like /(fruit)s")}/**Output:I like ApplesI like OrangesI like Grapess*/

TypeScript Code

for (const fruit of fruits) {    console.log(`I like ${fruit}s`);}/**Output:"I like Apples" "I like Oranges" "I like Grapess" */

字典

字典是一种用于存储键值对的集合,它允许你通过键来快速检索值。Nfh28资讯网——每日最新资讯28at.com

创建一个字典

在 Swift 中,字典使用 [Key: Value] 的语法来声明,其中 Key 是键的数据类型,Value 是值的数据类型。Nfh28资讯网——每日最新资讯28at.com

Swift Code

var studentScores = ["Alice": 95, "Bob": 87, "Charlie": 90]

TypeScript Code

let studentScores: { [key: string]: number } = { "Alice": 95, "Bob": 87, "Charlie": 90 };

访问和修改字典元素

在 Swift 和 TypeScript 中,你可以通过键访问和修改字典元素。Nfh28资讯网——每日最新资讯28at.com

Swift Code

let aliceScore = studentScores["Alice"]studentScores["Bob"] = 92// studentScores: ["Alice": 95, "Bob": 92, "Charlie": 90]

TypeScript Code

const aliceScore = studentScores["Alice"];studentScores["Bob"] = 92;// studentScores: {"Alice": 95, "Bob": 92, "Charlie": 90}

添加键值对

在 Swift 和 TypeScript 中,使用下标赋值的方式添加键值对。Nfh28资讯网——每日最新资讯28at.com

Swift Code

studentScores["David"] = 88// studentScores: ["Charlie": 90, "Alice": 95, "Bob": 92, "David": 88]

TypeScript Code

studentScores["David"] = 88;// studentScores: {"Charlie": 90, "Alice": 95, "Bob": 92, "David": 88}

删除键值对

在 Swift 中,使用 removeValue(forKey:) 方法删除指定键的键值对。而在 TypeScript 中,是使用 delete 操作符删除键值对。Nfh28资讯网——每日最新资讯28at.com

Swift Code

studentScores.removeValue(forKey: "Charlie")// studentScores: ["David": 88, "Bob": 92, "Alice": 95]

TypeScript Code

delete studentScores["Charlie"];// studentScores: {"David": 88, "Bob": 92, "Alice": 95}

获取键和值的集合

在 Swift 中,通过 keys 和 values 属性获取字典的键和值的集合。而在 TypeScript 中,是使用 Object.keys 和 Object.values 方法。Nfh28资讯网——每日最新资讯28at.com

Swift Code

let allKeys = Array(studentScores.keys)let allValues = Array(studentScores.values)// allKeys: ["David", "Bob", "Alice"]// allValues: [88, 92, 95]

TypeScript Code

const allKeys: string[] = Object.keys(studentScores);const allValues: number[] = Object.values(studentScores);// allKeys: ["Alice", "Bob", "David"] // allValues: [95, 92, 88]

遍历字典

在 Swift 和 TypeScript 中,都可以通过 for-in 循环遍历字典。Nfh28资讯网——每日最新资讯28at.com

Swift Code

for (name, score) in studentScores {    print("/(name) scored /(score)")}/**Output:Alice scored 95Bob scored 92David scored 88*/

TypeScript Code

for (const name in studentScores) {    const score: number = studentScores[name];    console.log(`${name} scored ${score}`);}/**Output:"Alice scored 95" "Bob scored 92""David scored 88" */

集合

集合是一种无序、无重复元素的集合类型。在 Swift 中,集合通过 Set 类型表示。Nfh28资讯网——每日最新资讯28at.com

创建一个集合

Swift Code

var numberSet: Set<Int> = [1, 2, 3, 4, 5]

TypeScript Code

let numberSet: Set<number> = new Set([1, 2, 3, 4, 5]);

添加元素

在 Swift 中,使用 insert 方法向集合中添加元素。而在 TypeScript 中,使用 add 方法。Nfh28资讯网——每日最新资讯28at.com

Swift Code

numberSet.insert(6)// numberSet: [3, 4, 5, 1, 2, 6]

TypeScript Code

numberSet.add(6);// numberSet: {1, 2, 3, 4, 5, 6}

移除元素

在 Swift 中,使用 remove 方法移除集合中的元素。而在 TypeScript 中,使用 delete 方法。Nfh28资讯网——每日最新资讯28at.com

Swift Code

numberSet.remove(3)// numberSet: [5, 2, 1, 4, 6]

TypeScript Code

numberSet.delete(3);// numberSet: {1, 2, 4, 5, 6}

遍历集合

在 Swift 中,可以使用 for-in 循环遍历集合。而在 TypeScript 中,可以通过 forEach 方法遍历集合。Nfh28资讯网——每日最新资讯28at.com

Swift Code

for number in numberSet {    print("Number is /(number)")}/**Output:Number is 2Number is 1Number is 5Number is 6Number is 4*/

TypeScript Code

numberSet.forEach((number) => {    console.log(`Number is ${number}`);});/**Output:"Number is 1""Number is 2""Number is 4""Number is 5""Number is 6"*/

集合交集

在 Swift 中,使用 intersection 方法获取两个集合的交集。而在 TypeScript 中,可以使用 Set 构造函数和 filter 方法。Nfh28资讯网——每日最新资讯28at.com

Nfh28资讯网——每日最新资讯28at.com

Swift Code

let anotherSet: Set<Int> = [4, 5, 6]let intersection = numberSet.intersection(anotherSet)// numberSet: [1, 5, 4, 2, 6]// anotherSet: [5, 4, 6]// intersection: [5, 4, 6]

TypeScript Code

const anotherSet: Set<number> = new Set([4, 5, 6]);const intersection: Set<number> = new Set([...numberSet].filter(x => anotherSet.has(x)));// numberSet: {1, 2, 4, 5, 6} // anotherSet: {4, 5, 6}// intersection: {4, 5, 6}

集合并集

在 Swift 中,使用 union 方法获取两个集合的并集。Nfh28资讯网——每日最新资讯28at.com

Nfh28资讯网——每日最新资讯28at.com

Swift Code

let union = numberSet.union(anotherSet)// numberSet: [5, 1, 4, 2, 6]// anotherSet: [4, 5, 6]// union: [5, 1, 4, 2, 6]

TypeScript Code

const union: Set<number> = new Set([...numberSet, ...anotherSet]);// numberSet: {1, 2, 4, 5, 6} // anotherSet: {4, 5, 6}// union: {1, 2, 4, 5, 6}

集合差集

在 Swift 中,使用 subtracting 方法获取两个集合的差集。而在 TypeScript 中,可以使用 Set 构造函数和 filter 方法。Nfh28资讯网——每日最新资讯28at.com

Nfh28资讯网——每日最新资讯28at.com

Swift Code

let difference = numberSet.subtracting(anotherSet)// numberSet: [6, 2, 4, 1, 5]// anotherSet: [5, 6, 4]// difference: [1, 2]

TypeScript Code

const difference: Set<number> = new Set([...numberSet].filter(x => !anotherSet.has(x)));// numberSet: {1, 2, 4, 5, 6} // anotherSet: {4, 5, 6}// difference: {1, 2}

本文我们介绍 Arrays, Dictionaries 和 Sets 三种集合类型等相关的知识。通过与 TypeScript 语法的对比,希望能帮助您更好地理解 Swift 的相关特性。Nfh28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-60905-0.htmlSwift 数组、字典和集合

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 我们一起聊聊Swift 条件控制和循环

下一篇: Spring解决泛型擦除的思路不错,现在它是我的了

标签:
  • 热门焦点
  • MIX Fold3包装盒泄露 新机本月登场

    小米的全新折叠屏旗舰MIX Fold3将于本月发布,近日该机的真机包装盒在网上泄露。从图上来看,新的MIX Fold3包装盒在外观设计方面延续了之前的方案,变化不大,这也是目前小米旗舰
  • 6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    没有新品发布,自然iOS设备性能榜的上榜设备就没有什么更替,仅仅只有跑分变化而产生的排名变动,毕竟苹果新品的发布节奏就是这样的,一年下来也就几个移动端新品,不会像安卓厂商,一
  • 5月安卓手机好评榜:魅族20 Pro夺冠

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年5月1日至5月31日,仅限国内市场。第一名:魅族20 Pro好评率:97.50%不得不感慨魅族老品牌还
  • 消息称迪士尼要拍真人版《魔发奇缘》:女主可能也找黑人演员

    8月5日消息,迪士尼确实有点忙,忙着将不少动画改成真人版,继《美人鱼》后,真人版《白雪公主》、《魔发奇缘》也在路上了。据外媒消息称,迪士尼将打造真人版
  • 三言两语说透设计模式的艺术-简单工厂模式

    一、写在前面工厂模式是最常见的一种创建型设计模式,通常说的工厂模式指的是工厂方法模式,是使用频率最高的工厂模式。简单工厂模式又称为静态工厂方法模式,不属于GoF 23种设计
  • “又被陈思诚骗了”

    作者|张思齐 出品|众面(ID:ZhongMian_ZM)如今的国产悬疑电影,成了陈思诚的天下。最近大爆电影《消失的她》票房突破30亿断层夺魁暑期档,陈思诚再度风头无两。你可以说陈思诚的
  • 国行版三星Galaxy Z Fold5/Z Flip5发布 售价7499元起

    2023年8月3日,三星电子举行Galaxy新品中国发布会,正式在国内推出了新一代折叠屏智能手机三星Galaxy Z Fold5与Galaxy Z Flip5,以及三星Galaxy Tab S9
  • 首发天玑9200+ iQOO Neo8系列发布首销售价2299元起

    2023年5月23日晚,iQOO Neo8系列正式发布。其中,Neo系列首款Pro之作——iQOO Neo8 Pro强悍登场,限时售价3099元起;价位段最强性能手机iQOO Neo8同期上市
  • 滴滴违法违规被罚80.26亿 共存在16项违法事实

    滴滴违法违规被罚80.26亿 存在16项违法事实开始于2121年7月,历经一年时间,网络安全审查办公室对“滴滴出行”网络安全审查终于有了一个暂时的结束。据“网信
Top