[004]Swift 闭包 Closure 的使用

2019-06-26  本文已影响0人  快乐捣蛋鬼

参考: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
上一篇 下一篇

猜你喜欢

热点阅读