Swift闭包简单入门

前言:就像OC中的block一样,Swift中的闭包也把我搞得晕头转向的(人太笨)趁着失业,好好总结总结来年再战
// MARK:- NO.1 简单举例
#首先对Swift中的函数大家熟悉吧
           函数名(形参)-> (返回值类型) {
                     执行代码
       }
  func <#name#>(<#parameters#>) -> <#return type#> {
        <#function body#>
    }
//写个最简单的闭包
let work = {
 print(“工作在哪里")
}
//这个闭包是一个没有参数,没有返回值的函数—调用
work()

// MARK:- NO.2 有参数的闭包
#在闭包中:参数,返回值,实现代码都是写在{}中的
#在定义和实现之间需要关键字”in”来分隔 — {参数 ->返回值类型 in 实现代码 }
let eg = { (x: Int) -> () in 
    print(x)
}
eg (78)
// MARK:- NO.3 有参数有返回值的闭包
let eg1 = { (x: Int , y: Int) -> Int in 
 return x + y 
}
  print(eg1(10, 39))

// MARK:- NO.4 闭包作为参数传递(异步执行回调数据)
 //调用
        loadData { (result) in
            print("获取到数据\(result)")
        }

func loadData(completion: @escaping (_ result: [String]) -> ()) -> ()  {
        
        // 将任务添加到队列,指定执行任务的函数
        // 队列调度任务(block/闭包),以同步/异步方式执行
        
       //全局队列异步执行
        DispatchQueue.global().async { 
            
          print("耗时操作 \(Thread.current)")
        
          //获得结果
            let data = ["麦迪","科比","奥胖"]
            
            //获取一些结果,然后主队列回调
           DispatchQueue.main.async(execute: { 
            
            print("主线程更新UI\(Thread.current)")
         
            completion(data)
           
           })
        
        }
        
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 以下翻译自Apple官方文档,结合自己的理解记录下来。翻译基于 swift 3.0.1 原文地址 Closure...
    艺术农阅读 1,705评论 0 3
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,995评论 4 61
  • 在上一篇文章Swift中的变量和常量中我总结了一些自己对于变量和常量的认识,最近学习了闭包,顺便给大家分享一下关于...
    老板娘来盘一血阅读 18,875评论 16 87
  • 在这里.有着不同的烦恼,和生气。不是来自领导,不是来自同事,而是因为一群最不起眼的小孩,可是她们仍然威力无穷,...
    木棉宝宝阅读 604评论 0 0
  • 我觉得有点不对劲 所有人 对我行礼, 玫瑰 是你吗 啊 我在颤抖,颤抖 玫瑰,我爱你,爱你 礼 毕。
    留子尧阅读 225评论 0 5

友情链接更多精彩内容