zoukankan      html  css  js  c++  java
  • swift 关于闭包

    记录学习到,关于闭包的点滴。

    1:如果闭包是函数的最后一个参数,则可以将闭包写在()后面,也可以写在()里面

    2:如果函数只有一个参数,并且该参数是闭包,那么()可以不写

    闭包的用法:

    1:可以为Int类型做一个拓展例如:

    extension Int {

       

       func times(f: (Int) -> (Void)){

          print("Void")

          for i in 1...self{

             f(i)

          }

       }

    }

    //      let t = 10

    //      t.times { (i:Int) in

    //         print(i)

    //      }

    可以循环得到1至10的值。

    2:可以封装一个闭包作为参数的函数,进行回调。

    封装网络请求

    class Client {

       static let shareInstance = HYClient()

       private init() {}

       func appPostRequest(_ path: String, parameters: Any?,done:(([String:AnyObject]?) -> Void)? = nil){

        let out = "你好"

          if let goods = done{

            goods(["out":out as AnyObject])

          }

       }

       func show(_ content:String,done:(_ cont:String) ->()){

          done("闭包参数")

       }

    }

    //

    Client.shareInstance.appPostRequest("", parameters: nil, done:

             {obj in

                if let out = obj?["out"]{

                  //这样就把值“你好”拿到了

                }

        })

          Client.shareInstance.show("参数", done:{(cont) ->() in

             //cont 值为“闭包参数”

          }

          )

    关于闭包还有需要学习的地方

    待续。。。。

  • 相关阅读:
    数据挖掘竞赛常用代码段
    东南大学《算法设计基础》课程作业 4
    东南大学《算法设计基础》课程作业 3
    东南大学《算法设计基础》课程作业 2
    东南大学《算法设计基础》课程作业 1
    shiro
    你好2021!
    关系型数据库索引设计与优化
    lua table面向对象扩展
    lua、python对比学习
  • 原文地址:https://www.cnblogs.com/linximu/p/6293519.html
Copyright © 2011-2022 走看看