class是通过引用传递,struct是通过值传递。
把结构体看作是值,把类看作是物体。
结构体:位置(经纬度)、坐标(二维坐标、三维坐标)、温度等等可以直接用值来表示的数据。
类:人、车、动物等。
class可以继承,struct不可以继承。
struct比class更“轻量级”,struct分配在栈中,class分配在堆中。
class Person { var age = 18 init() { } init(age: Int) { self.age = age }}let a = Person()print(a.age) //18let b = Person(age: 20)print(b.age) //20let c = bc.age += 2print(c.age) //22print(b.age) //22let d = bd.age += 2print(d.age) //24print(c.age) //24print(b.age) //24
struct Boy { var age = 18 init() { } init(age: Int) { self.age = age }}let e = Boy()print(e.age) //18let f = Boy(age: 20)print(f.age) //20var g = fg.age += 2print(f.age) //20print(g.age) //22