Swift闭包的使用

Swift闭包的使用

闭包的作用

1.提前准备好执行代码
2.在需要的时候执行
3.可以当参数传递
主要的应用场景就是异步,组件,视图等的回调(类似OC的Block和Java的接口回调)。

闭包的定义

定义 :{ 形参列表 -> 返回类型 in
//实现代码
}
示例:

      let c1 = { (x: Int, y: Int) -> Int in
            return x + y;
        }

执行一个闭包
示例:

 print(c1(10 ,20));

通过闭包传递参数

闭包参数定义: 参数名: (闭包参数名: 闭包参数类型)->闭包返回类型
示例:

    func loadDataTest(completion: @escaping (_ data: String)->()) -> () {
        DispatchQueue.global().async {
            print("load data...");
            Thread.sleep(forTimeInterval: 1.0);
            let data = "result";
            DispatchQueue.main.async {
                completion(data);
            }

        }
    }

传递一个闭包参数
示例:
1.完整的写法

        loadDataTest (completion: {(_ result: String) -> () in
            print(result);
        })

2.去掉参数类型的写法

       loadDataTest (completion: {result -> () in
            print(result);
        })

3.缩略返回类型的写法

       //缩写形式
        loadDataTest (completion: {result in
            print(result);
        })

尾随闭包

定义: 如果一个函数的最后一个参数是闭包, 函数参数可以提前结束, 最后一个参数直接使用{}包装闭包的代码
示例:

        loadDataTest { (result) in
            print(result);
        }

可以省略参数类型和返回只类型
示例:

      loadDataTest {
            print($0);
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值