//闭包:的本质就是匿名函数,就是一个能完成特定功能的代码块
1无参无返的闭包 2无参数有返回值的闭包类型 3有参数有返回值 4有参数无返回值的闭包
//写一个求和的函数
func sum(num1:Int,num2:Int)->Int{
return num1 + num2
}
/*
(Int,Int)->(Int)
*/
let biBao:((Int,Int)->(Int))
biBao = {
(num1:Int,num2:Int)->(Int) in
return num1 + num2
}
//调用闭包
let result = biBao(1,2)
print(result)
//无参无返的闭包
/*func sayHello()->Void{
print("hello")
}
//()->(void) 无参数无返回值的闭包类型
*/
let b1:(()->(Void)) = {
()->(Void) in
print("wucanshuwufande bibao")
return print("提前结束")//有提前结束一个函数的能力
print("ew你好r4")//不执行
}
b1()
//无参数有返回值的闭包类型
/*func buyWine()->(Int){
return 1
}函数
*/
//() -> (Int)
let b2:(()->(Int)) = {
()->(Int) in
return 0
}
print(b2)
//b2()//b2档函数名使用
//有参数有返回值
var b3:((Int,Int)->(Int)) = {
(n:Int,m:Int)->(Int) in
return n + m
}
print(b3(1,5))
b3 = {
(a:Int,b:Int)->(Int) in
return a - b
}
print(b3(10,5))
//b3球俩个数积的代码块
b3 = {
(a:Int,b:Int)->(Int) in
return a * b
}
print(b3(2,5))
//闭包类型的变量,不止能存储一个代码块,而是能存储和变量类型一致的所有代码块
//有参数无返回值的闭包
//比较俩个数最大值,并把最大值输出的闭包
//(Int,Int)->(Void)
let b4:((Int,Int)->(Void)) = {
(num1:Int,num2:Int)->(Void) in
print (num1 > num2 ? num1 : num2)
}
b4(10,12)