Swift学习笔记-闭包

闭包(closure)是一种更加紧凑,轻量的匿名函数,类似于Java中的lambda表达式

swift中的闭包语法如下

{(parameters)->returnType in
...
}

接下来我们看一段数组排序代码, 该代码将函数sortAsc当做参数传递

let counts=[1,10,6,2,50,8,24]

func sortAsc(n1:Int,n2:Int)->Bool
{
    return n1

由于闭包也是函数的一种,所以我们可以使用闭包语法修改上面的代码

let counts=[1,10,6,2,50,8,24]

print(counts.sorted(by: {
    (n1:Int,n2:Int) -> Bool in
    return n1

闭包可以利用swift的类型推断系统,所以我们可以省略类型信息
由于return n1 由于这里只有一个表达式return n1

let counts=[1,10,6,2,50,8,24]
print(counts.sorted(by: {n1,n2 in n1

使用快捷参数名省略参数命名和in,其中1代表第二个参数,依此类推

let counts=[1,10,6,2,50,8,24]
print(counts.sorted(by: {$0<$1}))

如果闭包是函数的唯一参数,则可以省略圆括号以及参数名

let counts=[1,10,6,2,50,8,24]
print(counts.sorted{$0<$1})

你可能感兴趣的:(Swift学习笔记-闭包)