加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

6.7 Swift闭包捕获值

发布时间:2020-12-14 06:32:53 所属栏目:百科 来源:网络整理
导读:/** 闭包的捕获值 也就是闭包可以捕获上下文中的值 */ let incFunc1 = getInFunc (inc: 3 ) print (incFunc1) print ( "------------------" ) print (incFunc1( 10 )) let incFunc2 = getInFunc2 (inc: 3 ) print ( "------------------" ) print (incFunc2

/**

闭包的捕获值

也就是闭包可以捕获上下文中的值

*/

let incFunc1 = getInFunc(inc: 3)

print(incFunc1)


print("------------------>")

print(incFunc1(10))

let incFunc2 = getInFunc2(inc: 3)


print("------------------>")

print(incFunc2(10))

print(incFunc2(10))

/**

v==10

inc==3

mt==11

24

mt==12 // 它记住了上次的值11 并不是说又变成10

25

*/


// 返回的是一个闭包 (Int) -> Int

func getInFunc(inc:Int) -> ( (Int) -> Int ) {

func incFunc(v: Int) -> Int {

print("v==(v)")

print("inc==(inc)")

// inc在函数中生命周期结束了,但是可以捕获 inc

return inc + v

}

return incFunc

}

// 返回的是一个闭包 (Int) -> Int

func getInFunc2(inc:Int) -> ( (Int) -> Int ) {

var mt = 10

func incFunc(v: Int) -> Int {

mt = mt + 1

print("v==(v)")

print("inc==(inc)")

print("mt==(mt)")


// inc mt 在函数中生命周期结束了,但是可以捕获 inc mt

return inc + v + mt

}

return incFunc

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读