6.7 Swift闭包捕获值

6.7 Swift闭包捕获值,第1张

概述        /**          闭包捕获值                              也就是闭包可以捕获上下文中的值          */                           let incFunc1 = getInFunc(inc: 3)         print(incFunc1)         print("-----------------

/**

闭包的捕获值

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

*/

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

}

总结

以上是内存溢出为你收集整理的6.7 Swift闭包捕获值全部内容,希望文章能够帮你解决6.7 Swift闭包捕获值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1068573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存