[swift 进阶]读书笔记-第五章:结构体和类 C5P7_8 闭包和内存

结构体和类

5.7 闭包和内存(结构体和类的使用实践)


本节总结:主要是用了结构体纯函数来表示一个银行账户的资金情况。

最后的结论:
:线程不安全。
结构体:稳定,也不啰嗦
函数:线程安全,但程序会变得啰嗦

5.8 闭包和内存(引用循环和捕获列表)


知识点:闭包会引起循环引用(该知识点同OC的block的循环引用,不赘述。)

weak 引用


这里就讲了一些循环引用的基本知识点,我相信大家OC过来的同学都明明白白的。大意是可以用[weak self]的捕获列表解决这个问题。

名词: 捕获列表

咋一看让人很费解,那什么是捕获列表
闭包里面对周围的常量或变量进行的操作叫捕获
我们可以通过捕获列表去显示的控制在闭包中的捕获值
闭包中的in前面的小框框[] 就是捕获列表,里面的值就是捕获列表的值。

var a = 0
var b = 0
/// a 就在捕获列表中,b没有
let closure = { [a] in
    print(a, b)
}

a = 10
b = 10
closure()
// Prints "0 10"

注:捕获列表中的值的作用域只能在闭包内,闭包外无法使用。

文章源文件地址

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容