美文网首页
[004]Swift 闭包 Closure 的使用

[004]Swift 闭包 Closure 的使用

作者: 快乐捣蛋鬼 | 来源:发表于2019-06-26 20:24 被阅读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
    

    相关文章

      网友评论

          本文标题:[004]Swift 闭包 Closure 的使用

          本文链接:https://www.haomeiwen.com/subject/jrvhcctx.html