Swift中数组的学习笔记

2017-01-03  本文已影响36人  流星大石头
let fibs = [0,1,1,2,3,5]
1.遍历数组:
for x in fibs {
    print(x)
}
2.遍历除了第一个元素以外的数组其余部分
for x in fibs.dropFirst() {
    print(x)
}
3.遍历除了最后5个元素以外的数组
for x in fibs.dropLast(5) {
    print(x)
}
4.遍历数组中元素和对应的下标
for (num,element) in fibs.enumerated() {
    print(num)
    print(element)
}
5. first 和 last属性返回的都是可选值,数组为空时返回nil 。removeLast将会导致程序奔溃,popLast在数组为空时将返回nil
6. 数组变形Map:
/*
    对数组中的每个值执行转换操作。创建一个新数组,对已有数组中的元素进行循环依次取出其中元素,对取出的元素
    进行操作,并把操作的结果加入到新数组的末尾。
 */

//let squares = fibs.map { (element) -> Int in
//    return element*element
//}

//let squares = fibs.map { (element) -> Int in
//    element*element
//}

let squares = fibs.map {$0*$0}
7. Filter 检查一个数组,然后将这个数组中符合一定条件的元素过滤出来并用它们创建一个新的数组。
//对数组进行循环并且根据条件过滤其中元素的模式可以用数组的filter方法

//let arr1 = fibs.filter { (element) -> Bool in
//    return element > 3
//}

//let arr1 = fibs.filter { (element) -> Bool in
//    element % 2 == 0
//}

let arr1 = fibs.filter {$0 % 2 == 0}

//寻找100以内同时满足是偶数并且是其他数字的平方的数

(1..<10).map{$0*$0}.filter {$0%2==0}
8.Reduce 把数组中所有的元素合并为一个新的值
//比如:数组叠加得到一个总和

//let sum = fibs.reduce(0) { (total, num) -> Int in
//    return total + num
//}

//let sum = fibs.reduce(0) {$0+$1}
let sum = fibs.reduce(0, +)
9.使用forEach进行迭代 大多数情况下,建议不要使用forEach。

//技术来说,我们可以不假思索的将一个for循环替换为forEach:
for element in [1,2,3] {
    print(element)
}
[1,2,3].forEach { element in
    print(element)
}
//当for循环中有return语句时,将它重写为forEach会造成代码行为上的极大区别
(1...10).forEach { (number) in
    print(number)
    
    if number > 2 {return}
}
//这段代码将会把输入的数字全部打印出来。return语句并不会终止循环,它做的仅仅是从闭包中返回。
//因为 return 在其中的行为不太明确,我们建议大多数情况下不要用 forEach。这种时候, 使用常规的 for 循环可能会更好。
上一篇下一篇

猜你喜欢

热点阅读