1、在oc中,我们熟知的block,并且很好的进行运用,但是在swift中它有一个崭新的名字叫做“闭包”。
let names = ["bob","joc","Jemm","work","person","people"]
print(names.sorted())
//对数组中的数进行排序
func sortByArray(a:Int , b:Int) -> Bool{
return a < b
}
//对数组中的每一个数都可以乘以5
func addANumber(num:Int) -> Int{
return num * 5
}
let numbers = [1,4,2,4,5,52,2,5]
//map在数组中的运用
print(numbers.map({$0 + 2}))
print(numbers.map(addANumber))
print(numbers.map({num in num * 3}))
var numbers1 = [1,4,2,4,5,52,2,5]
numbers1 = numbers.map({num in num + 3})
print(numbers1.map({$0 + 2}))
print(numbers1.map(addANumber))
print(numbers1.map({num in num * 3}))
//flatMap在数组中的运用
print(numbers1.flatMap(addANumber))
输出:
["Jemm", "bob", "joc", "people", "person", "work"]
[3, 6, 4, 6, 7, 54, 4, 7]
[5, 20, 10, 20, 25, 260, 10, 25]
[3, 12, 6, 12, 15, 156, 6, 15]
[6, 9, 7, 9, 10, 57, 7, 10]
[20, 35, 25, 35, 40, 275, 25, 40]
[12, 21, 15, 21, 24, 165, 15, 24]
[20, 35, 25, 35, 40, 275, 25, 40]
[3, 6, 4, 6, 7, 54, 4, 7]
[5, 20, 10, 20, 25, 260, 10, 25]
[3, 12, 6, 12, 15, 156, 6, 15]
[6, 9, 7, 9, 10, 57, 7, 10]
[20, 35, 25, 35, 40, 275, 25, 40]
[12, 21, 15, 21, 24, 165, 15, 24]
[20, 35, 25, 35, 40, 275, 25, 40]
2、swift中willSet和didSet的运用(类似oc中的KVO模式)
var totalNumber = 0{
willSet(newNumber){
print("new:\(newNumber)")
}
didSet(oldNumber){
print("old:\(oldNumber)")
}
}
totalNumber = 60
totalNumber = 100
print("final:\(totalNumber)”)
输出:
new:60
old:0
new:100
old:60
final:100
old:0
new:100
old:60
final:100
3、swift中的GCD
DispatchQueue.global(qos:.userInitiated).async {
DispatchQueue.main.async {
print("GCD isComing")
}
}
输出:
GCD isComing