Swift4第10天关闭(1)

闭锁是功能独立的区块链,可以在程序之间被传递和使用。像是之前提到的嵌套状函式(Nested Function),就是一种闭包。

闭包有三种表示方式:

・函式就是一种有名字的闭包・巢状函式是一种有名字且被包在其他函式中的闭包·闭包表达式是使用简洁的语法来描述一种没有名字的闭包,可以在程式之间传递及使用。

Swift提供了一种叫做sorted的方法,根据我们提供的排序闭包,将已知类型数组的值进行排序,再次排序完成,sorted好的。我们可以用sorted()去使用sorted的功能,再没有特别设定之下,sorted的功能就是将Array中的数值从小到大分开,字串则是照字母顺序:

如果我们想要让Array由大到小排序(字串则反之),可以透过定义功能,并使用sorted(by:):

闭包表达式(Closure Expression)是一种用简洁语法建立匿名函式的方式。同时提共了优化语法,可以使程式码变得更好读。

  {(参数)->返回值类型别 
内部程式
}

从上面的程式看到,与一般函式相同的是闭包同样有一个大括号将程式包起来,不过省略了名称,包着参数的小括号放到大括号里面,然后返回型别,再接一个在执行内部程式中

在这边我们不是建立一个函数,而是将这些参数以及回传值等等包在一个大括号中,最后再用

从总体而言型别

因为排序闭包是实际参数传递给函数,所以Swift可以判断他的形式参数类型及回传型别

单表达式闭包隐式回传

单行表达式闭包可以通过隐藏隐藏return来隐式回传单行表达式的结果

参数名称缩写

Swift为闭包提供参数名称缩写功能,能直接以$ 0,$ 1,$ 2这种方式来依序呼叫闭包的参数。缩写的型别会透过函式型别自动预设,所以在也会同被省略

运算子函式

Swift的String定义了关于大于符号等特定符号的实现,与sorted所需要的相符合

・ Swift4 Day-01基本语法・ Swift4 Day-02选项及无
・ Swift4 Day-03集合类型—数组
・ Swift4 Day-04集合类型—设置
・ Swift4 Day-05集合类型—字典
・ Swift4 Day-06控制流程(1)
・ Swift4 Day-07控制流(2)
・ Swift4 Day-08功能(1)
・ Swift4 Day-09功能(2)

电子邮件:albert.Ch1994@gmail.com