zoukankan      html  css  js  c++  java
  • Swift_4_闭包(Blocks)

    import Foundation
    
    println("Hello, World!")
    
    var arr = [1,2,4,6,74,2]
    
    func hasClosure(list:[Int], v2:Int, cb:(num:Int, v3:Int) ->Bool)  ->Bool{
        
        for item in arr{
            if(cb(num:item, v3:v2)){
                return true;
            }
        }
        return false;
    }
    
    var v2 = hasClosure(arr, 82, {
        (num:Int, v3:Int) ->Bool in
        return num >= v3;
        });
    println("v2 is (v2)")
    
    
    
    //sort函数  会依据您提供的排序闭包将已知类型数组中的值进行排序。 一旦排序完毕,函数会返回一个与原数组大小同样的新数组。该数组中包括已经正确排序的同类型元素
    let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]
    
    func backwards(s1: String, s2: String) -> Bool {
        return s1 > s2
    }
    
    var reversed = sort(names, backwards)
    // reversed is equal to ["Ewa", "Daniella", "Chris", "Barry", "Alex"]
    //闭包版
    reversed = sort(names, { (s1: String, s2: String) -> Bool in
        return s1 > s2
        })
    
    //单行
    reversed = sort(names, { (s1: String, s2: String) -> Bool in return s1 > s2 } )
    
    //再精简
    reversed = sort(names, { s1, s2 in s1 > s2 } )
    
    //极致精简
    reversed = sort(names, { $0 > $1 } )
    
    //终极精简
    reversed = sort(names, >)
    
    println("reversed is (reversed)")
    
    //闭包表达式
    //{
    //    (parameters) -> returnType in
    //    statements
    //}


  • 相关阅读:
    Document
    Document
    Document
    Document
    Document
    Document
    8. vue 的生命周期
    7. vue-cli 安装和使用脚手架
    5.组件(2) 之 父级传子级
    6.组件(3) 之 子级传父级
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6819490.html
Copyright © 2011-2022 走看看