swift 带参,无参,函数加返回值。闭包
来源:互联网 发布:caffe fcn 训练 编辑:程序博客网 时间:2024/05/22 14:23
import UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 1>. 最简单的闭包 ()->()没有参数,没有返回值的函数 如果没有参数,没有返回值,in可以省略 let b1 = { print("Hello SiSi") } // 执行闭包 b1() // 2. 带参数的闭包 参数,返回值,实现代码都是写在{}中 // {形参列表 - >返回值类型 // 实现代码} // 使用 in 分割定义和实现 b2的类型: (Int) -> () let b2 = { (x: Int ) ->() in print(x) } // 执行闭包 b2(100) // 3.带参数/返回值的闭包 // (Int) -> Int let b3 = {(y: Int) ->Int in return y + 250 } // 闭包调用 print(b3(30)) // 4.异步执行任务,获取数据,通过block/闭包回调,闭包的应用场景和闭包一样 // 5.尾随闭包 如果函数的最后一个参数是闭包,函数的参数可以提前结束,最后一个参数直接使用{}包装闭包的代码 /* loadData() { (result) in print(result) } */ loadData { (result) in print(result) } // 按照函数的本身编写 loadData(completion: {(result) -> () in print(result) }) } func demo1() { // 尾随闭包 DispatchQueue.global().async { // 嵌套的GCD xcode不会改成尾随闭包 DispatchQueue.main.async(execute: { }) } // 尾随闭包 DispatchQueue.main.async { } } func loadData(completion: (result: [String]) ->()) -> () { // 将任务添加到队列,执行任务的操作,队列的调度是以同步/异步执行任务 DispatchQueue.global().async{ print("耗时操作\(Thread .current())") // 休眠 Thread.sleep(forTimeInterval: 1.0) // 获得数据 let json = ["头条","八卦","出大事了"] //主线程更新 DispatchQueue.main.async(execute: { print("主线程更新UI\(Thread.current())") // 回调,执行,通过参数回调 completion(result: json) }) } } // 1.使用变量记录函数 func demo() { let x:Int = sum(x: 20, y: 30) print("sum = \(x)") // 闭包: 提前准备好代码,需要的时候执行,可以当做参数传递 // 定义一个常量记录函数 (x: Int, y: Int) -> Int let f = sum // 在需要的时候执行 在OC是不能实现 print(f(x: 30, y: 30)) } func sum(x:Int,y: Int) -> Int { return x + y }}
阅读全文
0 0
- swift 带参,无参,函数加返回值。闭包
- swift 带参,无参,函数加返回值。闭包
- 习题--创建无返回值的带参方法
- 无参函数,有参函数,有返回值类型
- 函数无返回值
- swift中函数的形参和返回值
- swift闭包函数
- swift中的函数用法,嵌套函数和返回一个函数以及函数作为参数,闭包
- swift函数作为返回值
- js函数:声明和调用、有参函数和无参函数、有返回值
- JS、函数的声明与调用、有参函数与无参函数、返回值
- javascript函数的声明和调用、有参函数和无参函数、有返回值
- js函数中声明和调用、有参函数和无参函数、返回值
- js函数:声明和调用、有参函数和无参函数、有返回值
- js函数的基础应用:声明和调用、有参函数、无参函数、返回值
- JS函数的声明和调用,有参函数和无参函数,返回值
- Acticle 2:javascript函数:声明和调用、有参函数和无参函数、返回值
- JavaScript函数声明和调用、有参函数和无参函数、返回值
- keychain保存信息失败
- jenkins 视图正则匹配分类
- PhpStorm开发小技巧
- vim常用命令总结 (转)
- 错误的内部链接结构和URL结构介绍
- swift 带参,无参,函数加返回值。闭包
- 2017.9.28 约数研究 思考记录
- myEclipse中使用debug调试程序
- bootstrap-treeview 树列表 总结整理
- 搭建Play框架详细步骤
- 股票量化分析(4)——利用各种数据源(yahoo、新浪、阿里云)的股票数据画图
- Codeforces Round #362 (Div. 2) D Puzzles(树形dp)
- [吐槽贴]用惯了C#之后回过来用C++真的很不适应!
- 【安全牛学习笔记】手动漏洞挖掘-SQL盲注