Swift集合
Posted fgyong的开发日记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift集合相关的知识,希望对你有一定的参考价值。
集合
Swift
中有三种集合形式,分别是数组、集合、字典,数组是有序集合,集合是无序,字典是键值对的。
数组
数组中指定类型只能容纳该类型数据,想要容纳多种数据可以使用Any
关键字,或协议
let arInt = [0]
let arStr = ["0"]
let arAny : [Any] = [0,"1",[2],Set<Int>.init(arrayLiteral: 3)]
for i in arAny{
print(i)
}
//访问
array[0]
arrayStr[1]
a2[3]
集合
var set = Set<Int>.init(arrayLiteral: 1,2,3)
for i in set{
print(i)
}
set.insert(4)
set.removeAll() //删除
set = [] //set的类型依旧是 Set<Int>
print(type(of: set))
let del = set.remove(1) //删除单个元素
//检查是否包含某个元素
if set.contains(1){
print("包含元素1")
}
// 遍历集合
for i in set{
}
集合是无序的,但是标准库提供了排序函数返回有序数组。
set.sorted() // [Int]
集合的并集、交集、等操作
let news = s1.intersection(s2)//s1 和s2 交集
let news2 = s1.symmetricDifference(s2) // news的 取反,就是s1 + s2 - (s1 & s2)
let news3 = s1.union(s2) // s1 || s2
let news4 = s1.subtracting(s2)// s1 + s2 - (s2)
字典
//初始化
var dic = Dictionary<Int,Int>()
var dic2 = [Int:Int]()
// 赋值
dic[1] = 1
dic2[2] = 2
// 更新值
dic.updateValue(10, forKey: 1)
dic2.updateValue(20, forKey: 2)
print(dic,dic2)
//
dic[3] = 3
dic[4] = 4
dic[5] = 5
// 字典是否包含某个 kye 或者value,使用闭包来生成条件
if dic.contains(where: { (key,value) -> Bool in
print(key,value)
return key == 1
}){
// print(dic)
}
不确定是否包含该key
可以这样
if let v = dic[1]{
print(v)
}else{
print("no 1")
}
也可以这样
guard let let v = dic[1] else{
return
}
当需要key
和value
同时需要读取的话
for i in dic{
print(i.key,i.value)
}
// OR
for (k,v) in dic{
print(k,v)
}
•
以上是关于Swift集合的主要内容,如果未能解决你的问题,请参考以下文章
如何将这个 Objective-C 代码片段写入 Swift?
如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?
Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题