CGRect, CGSize, CGPoint这些是 。
String, Int, Array, Dictionary这些我们经常用的也是结构体(Struct)。
那么结构体(Struct)到底是什么呢?
学过C语言的朋友一定知道它是什么,在这里我就不多说了,你懂的。
我想说的重要的事情是,你必须搞清楚Struct和类的区别,在Swift中这点特别重要。
一下几点区别:
1) 结构体(Struct)不支持继承,而类(Class)则支持。
2) 结构体(Struct)有一个成员初始化器(member-wise initializer), 它把所有的属性成员作为参数。
3) 如果所有的属性成员都已经有了默认初值, 结构体(Struct)则有一个默认的初始化器init()
4) 最后这点最重要,结构体(Struct),还有enum是值类型的,而类(Class)则是引用类型的。
值类型在赋值,或者作为参数传递的时候,会创建副本。
引用类型在赋值,或者作为参数传递的时候,不会创建副本。
因此,你所指向的都是同一个人(同一块内存)。
类和闭包都是引用类型。