数组
重复值的初始化
除了普通的初始化方法,我们可以通过 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)]








