swift 学习笔记(19)-闭包
来源:互联网 发布:java中this 编辑:程序博客网 时间:2024/06/05 20:35
通过一个数组名称排序的例子,讲解闭包
表达形式
方式一
var names = ["zhangsan","lisi","wangwu","zhaoliu"]//数组的 sort 方法就是一个闭包names.sort { (s1, s2) -> Bool in return s1 > s2}print(names)
方式二
//返回的是一个 bool 类型的值,大于才会返回,如果不成立,就不返回,所以 bool 就可以直接省略了names.sort { (s1, s2) in return s1 < s2}print(names)
方式三
// return 也可以省略,单行闭包,单行闭包names.sort { (s1, s2) in (s1 > s2)}print(names)
方式四
// 第四种方式,把参数表达式也省略了$0/$1代表数组中的第0个和第一个元素names.sort(by: {$0 < $1})print(names)
//:## 自己创建一个闭包--闭包表达式,其实闭包很像一个匿名函数//{(参数列表)->返回值类型 in// // 闭包实现代码// return//}var c1 = {(a:String, b:String)->String in return a + b;}// 用 d 来接受闭包的返回值let d = c1("name","wagn")print("name = \(d)")
在函数中使用闭包
// 声明一个函数,传参数的时候,传一个闭包进去,看一下上面 c1 的闭包类型,把闭包的类型放进去func pinjieSting(str1:String,str2:String, bibao :((String,String)->String)) -> String{ // 实现 让闭包来做,直接调用闭包 return bibao(str1,str2)}// 调用函数的时候就发现有点不一样了,整个函数的实现是由一个闭包实现的,跟在参数列表的后面// 这种情况为 尾随闭包(写参数的时候,如果最后一个参数是闭包,直接敲回车,就会自动扩展出来)pinjieSting(str1: "name", str2: "wang") { (str1, str2) -> String in return str1 + str2}// 写参数的时候自己写,不要敲回车// 非尾随闭包pinjieSting(str1:"明天是", str2: "星期五",bibao: {(str1,str2)->String in return str1 + str2})// 把闭包的参数标签删掉,把括号调整下,就变成尾随闭包了,其实是一个东西,只不过语法上略有不用.
0 0
- swift 学习笔记(19)-闭包
- Swift 学习笔记 - 闭包
- swift开发学习笔记-闭包
- Swift学习笔记之闭包
- Swift学习笔记(五)闭包
- swift学习笔记之闭包
- swift 之闭包的学习笔记
- Swift学习笔记 -- 函数和闭包
- Swift学习笔记(9)--闭包
- swift 学习笔记之闭包
- swift学习笔记(7)-闭包
- swift学习笔记6 闭包
- Swift 闭包(笔记)
- Swift笔记:闭包
- swift闭包学习
- swift学习--闭包
- 闭包—Swift学习笔记(十)
- Swift学习笔记-函数和闭包(1)
- iOS开发中,iOS10权限崩溃问题
- 关于ffmpeg的安装详细步骤和说明
- python Lambda 表达式
- 23. Merge k Sorted Lists
- Android View绘制过程
- swift 学习笔记(19)-闭包
- mysql主从复制
- appium小知识-持续更新
- sublime text 3 中 SFTP插件的配置使用
- 中级 PHP的知识点汇总
- Android写出数据到外部TF卡,可行性方法
- MFC 检测内存泄漏的方法
- 高效文件读取 - python
- PostgreSQL使用