• Swift 闭包的简单学习


    OC中已经学习了闭包 在swift里面 该怎么处理 不多说 上代码

    //(num:Int) ->Bool是闭包的参数类型
        func hasCloserMatch(arr :[Int], value :Int,bibaoCloser: (num:Int, value:Int) ->Bool) -> Int{
            for item in arr{
                //只管调用 闭包里的函数 不管如何实现
                //类似 oc/Blocks c/函数指针(Function Pointer)
                if(bibaoCloser(num: item,value: value)){
                    return item
                }
            }
            return  -1
        }
      //闭包 反向传值 做回调
            var arr = [20, 1,100,34,10,9,8]
            //是否 Arr 里面 有比40 大的数
            var v1 = hasCloserMatch(arr,value: 4000,bibaoCloser:{
                (num:Int, value:Int) -> Bool  in //关键字
                return num >= value
            })
            print(v1)
            
            var v2 = hasCloserMatch(arr, value: 10, bibaoCloser: {
                //没有写类型(num:Int, value:Int) ->Bool in
                //这里 $0  $1 代表 value 1  value 2 参数1 参数2 的值   是 sh(xiyao)编程的语法
                return $0 >= $1
            })
            print(v2)
            //总结  bibaoCloser, func bibaoCloser(num:Int, value:Int) ->Bool 
            //闭包 就是用在2个对象之间通讯的
            //闭包 类似于=~ delegate  但是闭包更简洁
  • 相关阅读:
    time模块
    日期和时间
    异常和函数
    finally子句
    自定义异常
    异常中的else
    全捕捉
    排序算法---希尔排序
    排序算法---直接插入排序
    排序算法---快速排序
  • 原文地址:https://www.cnblogs.com/someonelikeyou/p/5039006.html
Copyright © 2020-2023  润新知