Swift心得笔记之集合类型

2020-01-08 22:44:23丽君
本文为大家讲解的是swift语言中的集合类型数据,这是swift开发必须掌握的知识点,感兴趣的同学参考下。  

数组

重复值的初始化

除了普通的初始化方法,我们可以通过 init(count: Int, repeatedValue: T) 来初始化一个数组并填充上重复的值:

 

复制代码
// [0.0,0.0,0.0]
var threeDoubles = [Double](count:3,repeatedValue:0.0)

 

带索引值的遍历

我们可以用 for in 遍历数组,如果想要 index 的话,可以用 enumerate<Seq : SequenceType>(base: Seq) :

 

复制代码
let arr = ["a","b"]
for (index, value) in enumerate(arr) {
    println("(index):(value)")
}
// 0:a
// 1:b

 

赋值与拷贝

Swift 中数组和字典均是结构体的形式实现的,和 NSArray 那一套不太一样,所以赋值的时候其实是给了一份拷贝:

 

复制代码
let hd = Resolution(width: 1920, height: 1080)
var cinema = hd
cinema.height = 233
cinema  // 1920 233
hd      // 1920 1080

 

高阶函数

Swift 有一些 Higher Order Functions :map、filter和reduce。使用得当的话可以省去很多不必要的代码。

map

map 可以把一个数组按照一定的规则转换成另一个数组,定义如下:

 

复制代码
func map<U>(transform: (T) -> U) -> U[]

 

也就是说它接受一个函数叫做 transform ,然后这个函数可以把 T 类型的转换成 U 类型的并返回 (也就是 (T) -> U),最终 map 返回的是 U 类型的集合。

下面的表达式更有助于理解:

 

复制代码
[ x1, x2, ... , xn].map(f) -> [f(x1), f(x2), ... , f(xn)]