zoukankan      html  css  js  c++  java
  • 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  但是闭包更简洁
  • 相关阅读:
    css常见布局问题
    jsonp原理及同源策略
    执行webpack-dev-server时,提示端口被占用。
    PHP中的<<<运算符
    PHP中的字符串类型
    数据库系统的结构
    HDU 2516 取石子游戏
    常用MySql命令列选
    mysql简单语句
    微信小程序-循环
  • 原文地址:https://www.cnblogs.com/someonelikeyou/p/5039006.html
Copyright © 2011-2022 走看看