第一章:

1.class 和 struct 的区别

a.class 为类, struct 为结构体, 类是引用类型, 结构体为值类型, 结构体不可以继承

值类型的变量直接包含他们的数据,对于值类型都有他们自己的数据副本,因此对一个变量操作不可能影响另一个变量;

引用类型的变量存储对他们的数据引用,因此后者称为对象,因此对一个变量操作可能影响另一个变量所引用的对象。

b.属性初始化不同,

class直接赋值,可选类型,构造器赋值

struct 不需要提前赋值,

c.在struct的成员函数中修改自己本身的值,应该在函数签名上加上mutating关键字,而class则没有此限制

d.struct初始化为let的对象无法修改,修改会编译报错,而class没有此限制

e.从内存分配角度, struct分配在栈上,而class分配在堆上。

e.从安全角度,struct值类型是自动线程安全的,无引用计数

f.从速度角度,值类型通常来说是以栈的形式分配的,而不是用堆。

g.从内存泄漏的角度看,struct没有引用计数,不会引起内存泄漏


2.map、filter、reduce 的作用

3.map 与 flatmap 的区别

4.Swift 如何优雅的实现协议的可选方法

5. Swift - mutating关键字的使用

你可能感兴趣的:(第一章:)