Swift(5)
目录
集合类型
数组
编辑
合集
合集操作
字典
Where
集合类型
Swift提供了三种主要的集合类型:组合,合集,字典。
数组是有序的值的集合。
合集是唯一值的无序集合。
字典是无序的键值对集合。
数组
Swift数组的类型的完整写法是 Array[Element]
import UIKitvar someInts=[Int]()
print("somInts is of type [Int] with \(someInts.count) items.")
someInts.append(1)
print("someInts is \(someInts)")//使用默认值创建数组
//Swift的Array类型提供了初始化器来创建确定大小且元素都设定为相同默认值的数组
var threeInts=Array(repeating: 2, count: 6)
print("threeInts is \(threeInts)")//把两个兼容类型的现存数组用加运算符(+)加在一起来创建一个新数组
var anotherThreeInts=Array(repeating: 6, count: 2)
var newInts=anotherThreeInts+threeInts
print("newInts is \(newInts)")var arrayList:[String]=["hello","world"]
print("arrayList is \(arrayList)")//得出数组中元素的数量
print("The arrayList contains \(arrayList.count) items")//通过布尔量 isEmpty属性来检查 count属性是否等于0
if arrayList.isEmpty {print("The arrayList is empty.")
} else {print("The arrayList is not empty.")
}//通过 append()方法给数组末尾添加新的元素
arrayList.append("wuo")
print("arrayList is \(arrayList)")//可以使用加赋值运算符 ( +=)来在数组末尾添加一个或者多个同类型元素
arrayList += ["hello","am"]
print("arrayList is \(arrayList)")//取值
var firstItem=arrayList[0]
print("arrayList first item \(firstItem)")
print("arrayList \(arrayList[1...4])")//把元素插入到特定的索引位置,调用数组的 insert(_:at:)方法
arrayList.insert("okok", at: 1)
print("arrayList is \(arrayList)")//使用 remove(at:)方法来移除一个元素
var removeFirst=arrayList.remove(at: 0)
print("removeFirst is \(removeFirst)")//如果你想要移除数组最后一个元素,使用 removeLast()方法而不是 remove(at:)方法以避免查询数组的 count属性//遍历
print("遍历数组")
for i in arrayList{print(i)
}//遍历数组中的每一个元素以及值的整数索引
//使用 enumerated()方法来遍历数组
//enumerated()方法返回数组中每一个元素的元组,包含了这个元素的索引和值
for (index,value) in arrayList.enumerated(){print("Item \(index+1) : \(value)")
}
合集
合集将同一类型且不重复的值无序地储存在一个集合当中。
Swift 的合集类型写做 Set<Element>。


合集操作
- 使用 intersection(_:)方法来创建一个只包含两个合集共有值的新合集;
- 使用 symmetricDifference(_:)方法来创建一个只包含两个合集各自有的非共有值的新合集;
- 使用 union(_:)方法来创建一个包含两个合集所有值的新合集;
- 使用 subtracting(_:)方法来创建一个两个合集当中不包含某个合集值的新合集。
字典
Dictionary<Key, Value>,其中的 Key是用来作为字典键的值类型, Value就是字典为这些键储存的值的类型。
字典的简写形式为 [Key: Value]
var Ints=[Int:String]()
var fruit:[Int:String]=[1:"apple",2:"orange",3:"xigua"]
print("The fruit dictionary contains \(fruit.count) items")//isEmpty//添加
fruit[4]="hello"
print("The fruit dictionary contains \(fruit) items")fruit[4]="wuo"
print("The fruit dictionary contains \(fruit) items")//removeValue(forKey:)
if let removedValue = fruit.removeValue(forKey: 1) {print("The removed fruit's name is \(removedValue).")
} else {print("The fruit dictionary does not contain a value for 1.")
}
print("The fruit dictionary contains \(fruit) items")//遍历
for (index,value)in fruit{print("\(index) : \(value)")
}for i in fruit.keys{print("keys : \(i)")
}for i in fruit.values{print("value : \(i)")
}for i in fruit.keys.sorted(){print("有序的: \(i)")
}//用 keys或 values属性来初始化一个新数组
let fruitKeys = [Int](fruit.keys)
let fruitValues=[String](fruit.values)
print("fruitKeys are \(fruitKeys) \n fruitValues are \(fruitValues)")

Where
switch情况可以用Where分句来检查额外的情况。
import UIKitlet point=(1,-1)
switch point{
case let (x,y) where x==y:print("\(x),\(y) is on the line x==y")
case let (x,y) where x == -y:print("\(x),\(y) is on the line x==-y")
case let (x,y):print("\(x),\(y) is just some arbitary point.")
}

草稿箱里的这一篇博客被我忘了,虽然内容挺少的,大家先将就着看吧。
相关文章:
Swift(5)
目录 集合类型 数组 编辑 合集 合集操作 字典 Where 集合类型 Swift提供了三种主要的集合类型:组合,合集,字典。 数组是有序的值的集合。 合集是唯一值的无序集合。 字典是无序的键值对集合。 数组 Swift数组的类型的完整写法是…...
[Java 进阶面试题] CAS 和 Synchronized 优化过程
最有用的东西,是你手里的钱,有钱就有底气,还不快去挣钱~ 文章目录CAS 和 Synchronized 优化过程1. CAS1.1 CAS的原理1.2 CAS实现自增自减的原子性1.3 CAS实现自旋锁1.4 CAS针对ABA问题的优化2. synchronized2.1 synchronized加锁阶段分析2.2 synchronized优化CAS 和 Synchroniz…...
算法思想 - 贪心算法
本文主要介绍算法中贪心算法的思想: 保证每次操作都是局部最优的,并且最后得到的结果是全局最优的。贪心思想相关题目分配饼干455. Assign Cookies (Easy)Input: [1,2], [1,2,3] Output: 2Explanation: You have 2 children and 3 cookies. The greed factors of 2 …...
解决需求变更难题的8大方案
需求变更8大原因为什么会出现需求变更,这是由于需求约束、规则有了新的变化、由于政策发生变化,客户、沟通方式、流程化、标准化的问题等导致。这里在在过去的项目经验中,提出了常见的8大需求变更的原因。政策发生变化:指由于国家…...
NSSROUND#8[Basic]
文章目录一、[NSSRound#8 Basic]MyDoor二、[NSSRound#8 Basic]Upload_gogoggo三、[NSSRound#8 Basic]MyPage四、[NSSRound#8 Basic]ez_node一、[NSSRound#8 Basic]MyDoor <?php error_reporting(0);if (isset($_GET[N_S.S])) {eval($_GET[N_S.S]); }if(!isset($_GET[file])…...
Vue3代码初体验找不同
文章目录🌟 写在前面🌟 代码分析🌟 写在最后🌟 写在前面 专栏介绍: 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章,应粉丝要求开始更新 Vue3 的相关技术文章,Vue 框架目前的地位大家应该都晓…...
opencv调取摄像头录制
大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…...
html标签手册
完整的HTML页面📑 ①基础标签📑📑📑 HTML <!DOCTYPE> 声明 !DOCTYPE声明必须是 HTML 文档的第一行,位于 html标签之前。 !DOCTYPE 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版…...
SpringMVC--视图、RESTful案例、处理AJAX请求
SpringMVC的视图 SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户 SpringMVC视图的种类很多,默认有转发视图和重定向视图 当工程引入jstl的依赖,转发视图会自动转换为JstlView 若使用的视图技术为…...
一个同学升了leader,今年活还没干,他就已经想好组里成员的两次绩效考核怎么打了,还说:leader都是这样的!...
绩效是大家都比较关注的事情,那么作为领导,一般是怎么打绩效的呢?一位网友爆料:一个大学同学升了leader,前段时间跟他吃饭,他说他已经想好了今年组里成员的两次绩效考核怎么打了。该网友有点吃惊࿰…...
Docker 面试知识点
Docker 是什么? 是实现容器技术的一种工具是一个开源的应用容器引擎使用 C/S 架构模式,通过远程API 来管理 (我们本机是 C,docker 引擎是 S,实际的构建过程是在 docker 引擎下完成的)可以打包一个应用及依赖包到一个轻量级、可移植的容器中 …...
C++高级篇学习笔记
文章目录 前言 本文记录C一些面试难点问题剖析。 1. 左右值和右值引用的作用 左值:可以在左边,表达式结束后依然存在的持久对象,一般有名字,可以取地址。 提示: 前置自加/自减 可以做左值; 右值在右边&a…...
gentoo基本安装过程
该文章是本人在gentoo官方安装文档的基础上简单总结的,也是本人自己实践过的,目前本人用的就是gentoo,对于真的需要安装gentoo的朋友,建议还是参考官方文档,说的比较详细,这个可以简单看看,可以…...
【LeetCode】1234. 替换子串得到平衡字符串
1234. 替换子串得到平衡字符串 题目描述 有一个只含有 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符,且长度为 n 的字符串。 假如在该字符串中,这四个字符都恰好出现 n/4 次,那么它就是一个「平衡字符串」。 给你一个这样的字符串 s,…...
[动手写操作系统]-01-开机运行系统
文章目录 **概念和目标**概念目标理论源码概念和目标 概念 assembler: 汇编程序BIOS: BIOS(Basic Input Output System,基本输入输出系统)是个可编程的微型操作系统,用于管理计算机中的软硬件,它控制着系统的启动,系统是如何连接外部设备,怎样响应,调整相应操作,都是…...
最长回文子序列问题
最长回文子序列问题 问题描述:给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 注意是子序列而不是子…...
月薪11k!从财务专员到软件测试工程师,成都校区小哥哥用三个月实现转行换岗
好久没和大家分享学员的转行经历了,或许在一些人看来他们的故事与自己无关,但同样也能引起一些人的共鸣,可以帮助到那些陷于就业焦虑的同学找到目标和方向。相仿的年龄、相同的职业、相似的压力…在转行软件测试追求更好生活的路上࿰…...
Android 逆向工具大整理,碉堡了
文章目录jadx打开 gui 界面把安装包打开双击变量名和方法名可以高亮所有出现的地方**强大的搜索功能****搜索资源****查看 APK 签名****查看 APK dex 数,方法数****查看资源,配置清单****展开包名**查找方式引用反混淆导出 Gradle 工程导出反编译资源lib…...
二维数组的定义
1. 概念二维数组就是一种数组的数组,其本质上还是一个一维数组,只是它的数据元素又是一个一维数组。如果你对这个概念想象不出来,给大家举个栗子,相信吸烟的同学一下子就会明白。一根烟 一个变量一包烟 20根烟 一维数组一条烟 …...
SpringMVC--获取请求参数、域对象共享数据
SpringMVC获取请求参数 通过ServletAPI获取 将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请 求的请求报文的对象 RequestMapping("/testParam") public String testParam(HttpServletRequest request){S…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
DAY 26 函数专题1
函数定义与参数知识点回顾:1. 函数的定义2. 变量作用域:局部变量和全局变量3. 函数的参数类型:位置参数、默认参数、不定参数4. 传递参数的手段:关键词参数5 题目1:计算圆的面积 任务: 编写一…...

