Swift入门教程?看一篇文章就够了(四)

2021-06-08 10:29:58 浏览数 (1)

一·集合类型

Swift提供 数组Array(有序数据集),集合Set(无序无重复数据) Dictionary字典(无序的Key-Value对) 三种不同的基本集合类型来储存数据

注意:这三种集合都可以被称为范型集合

当你使用Let 来声明这三种集合类型时,那么这三种常量集合是不可变的

同理当使用Var来声明这三种变量的集合类型时,这三种变量集合是可变的

Array被桥接到Foundation中的NSNarry

空数组

var num = [Int]()

注: 通过构造函数创造的类型 num的值类型被推断成[Int]

默认值数组

var = Array(repeating:0.0 , count: 3)

创建一个一维数组 [0.0,0.0,0.0]

数组遵循加法交换律

字面量创建数组

var bre : [String] = ["Eggs","milk"]

简单数组属性:count,append,insert,[index]

数组的遍历

for i in list / for (key,vallue) in bre.enumerated()

集合Set

同样的也是被桥接到foundation里的NSSet

注意:一个类型为了储存到集合中,该类型必须是可哈希化的hashable

基本类型都是可以哈希化的String Int and so on

空集合

var letter = Set<Int>()

letter = []

数组字面量创建集合

var food : Set<String> = ["Milk","Coco"]

同样的集合也遵循基本属性count,append,insert

集合遍历

for i in Set.sorted()

集合的操作

交集:a.intersection(b) a ∩ b

并集: a.union(b) => a U b

差集: a.subtracting(b) 集合a中除去和b相同的元素

对称差集: a.symmetricDifference(b) 集合ab同时除去a和b中的交集

  • 使用“是否相等”运算符(==)来判断两个集合包含的值是否全部相同。
  • 使用 isSubset(of:) 方法来判断一个集合中的所有值是否也被包含在另外一个集合中。
  • 使用 isSuperset(of:) 方法来判断一个集合是否包含另一个集合中所有的值。
  • 使用 isStrictSubset(of:) 或者 isStrictSuperset(of:) 方法来判断一个集合是否是另外一个集合的子集合或者父集合并且两个集合并不相等。
  • 使用 isDisjoint(with:) 方法来判断两个集合是否不含有相同的值(是否没有交集)。

字典

同理三种集合类型也是遵循的foundation,桥接自NSDictionary

空字典

var A1 = [Int,String]()

A1 = [:]

字面量创建

var plant : [String:String] = ["T1":"厦门航空","T0":"广州航空"]

同样字典也遵循基本属性count,append,[index]等

注: 如果你需要使用某个字典的键集合或者值集合来作为某个接受 Array 实例的 API 的参数,可以直接使用 keys 或者 values 属性构造一个新数组:

let a = [String](plant.value)

let b = [String](plant.key)

0 人点赞