首页 技术 正文
技术 2022年11月16日
0 收藏 904 点赞 4,739 浏览 1130 个字

闭包(即一些小的匿名代码块),可以像函数一样使用。可以很方便的将闭包传给其他函数,告诉它们应当如何执行某一个任务。

1,使用sort方法和闭包进行数组排序sort方法返回一个数组的有序版本。(sort方法即为Swift2.0之前的sorted方法。而原来的sort方法改名为sortInPlace,用来将原数组修改成有序版本)

12345678 let numbers = [12,25,1,35,27] let numbersSorted = numbers.sort({ (n1: Int, n2: Int) -> Bool in    //进行从小到大的排序    return n2 > n1}) print(numbersSorted) //[1, 12, 25, 27, 35]

2,闭包可以不用指定参数类型,编译器会帮我们推断的

12345678 let numbers = [12,25,1,35,27] let numbersSorted = numbers.sort({ n1, n2 in    //进行从小到大的排序    return n2 > n1}) print(numbersSorted) //[1, 12, 25, 27, 35]

3,还可以省略参数名,直接根据数字来引用每个参数($0,$1,$2……)

12345678 let numbers = [12,25,1,35,27] let numbersSorted = numbers.sort({    //进行从小到大的排序    return $1 > $0}) print(numbersSorted) //[1, 12, 25, 27, 35]

4,如果闭包只包含一行代码,可以省略return关键字

12345678 let numbers = [12,25,1,35,27] let numbersSorted = numbers.sort({    //进行从小到大的排序    $1 > $0}) print(numbersSorted) //[1, 12, 25, 27, 35]

5,如果一个闭包是函数调用的最后一个参数,可以将它放在括号外面。提高可读性。

1234567 let numbers = [12,25,1,35,27] let numbersSorted = numbers.sort(){    //进行从小到大的排序    $1 > $0}print(numbersSorted) //[1, 12, 25, 27, 35]

6,这个换行也是可选的,所以代码可再次精简

1 let numbersSorted = numbers.sort(){ $1 > $0 }

7,闭包也可以存储在变量中,像调用函数一样调用它们

12 let comparator = {(a: Int, b: Int) in a < b}comparator(2,5) //true
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,910
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,435
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,250
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,061
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,693
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,731