闭包



//闭包:的本质就是匿名函数,就是一个能完成特定功能的代码块

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)


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值