【笔记】Swift的闭包

前言

Swift的闭包

匿名函数

1
2
3
{ (形参: 数据类型) -> 返回值类型 in
return 返回值
}

省略形参数据类型

1
2
3
{ (形参) -> 返回值类型 in
return 返回值
}

省略return关键字

1
{(形参) -> 返回值类型 in 返回值}

直接将实参作为返回值

$0:将第一个实参作为返回值直接返回

1
{$0}

将函数作为参数传递给其他函数

传递命名函数

1
2
3
4
5
6
7
8
9
func 函数名1(形参: 数据类型) {
print(形参)
}

func 函数名2(值形参: 数据类型, 函数形参: (形参数据类型) -> 返回值类型) -> 返回值类型 {
return 函数形参(值形参)
}

变量名 = 函数名2(实参, 函数名1)

传递匿名函数(闭包)

1
2
3
4
5
func 函数名2(值形参: 数据类型, 函数形参: (形参数据类型) -> 返回值类型) -> 返回值类型 {
return 函数形参(值形参)
}

变量名 = 函数名(实参, {匿名函数体})

尾随闭包

  • 外括号外传递匿名函数
1
2
3
4
5
func 函数名2(值形参: 数据类型, 函数形参: (形参数据类型) -> 返回值类型) -> 返回值类型 {
return 函数形参(值形参)
}

变量名 = 函数名(实参) {匿名函数体}
无形参
1
2
3
4
5
func 函数名2(函数形参: () -> 返回值类型) -> 返回值类型 {
return 函数形参(值形参)
}

变量名 = 函数名{匿名函数体}

完成

参考文献

哔哩哔哩——疯狂滴小黑