参考:http://www.hangge.com/blog/cache/detail_809.html
1.使用sort方法和闭包进行数组排序
let numbers = [5,76,4,1,3]
let sortedNumber = numbers.sorted { (n1: Int, n2: Int) -> Bool in
// 从小到大排序
return n1 < n2
}
print(sortedNumber) // [1, 3, 4, 5, 76]
2.闭包可以不用指定参数类型,编译器会帮我们推断的
let numbers = [5,76,4,1,3]
let sortedNumber = numbers.sorted { (n1, n2) in
// 从小到大排序
return n1 < n2
}
print(sortedNumber) // [1, 3, 4, 5, 76]
3.还可以省略参数名,直接根据数字来引用每个参数$0,1,2...
let numbers = [5,76,4,1,3]
let sortedNumber = numbers.sorted {
// 从小到大排序
return $0 < $1
}
print(sortedNumber) // [1, 3, 4, 5, 76]
4.如果闭包只包含一行代码,可以省略return关键字
let numbers = [5,76,4,1,3]
let sortedNumber = numbers.sorted {
// 从小到大排序
$0 < $1
}
print(sortedNumber) // [1, 3, 4, 5, 76]
5. 换个行
let sortedNumberA = numbers.sorted { $0 < $1 }
6.闭包也可以存储在变量中,像调用函数一样调用它们
let comparator = {(a: Int, b: Int) in a < b }
comparator(4,2) // false
网友评论