Swift类与结构体的区别
struct People {
var name : String
init(name : String) {
self.name = name
}
}
var p = People.init(name: "张三")
var p2 = p
p2.name = "lisi"
print(p.name,p2.name)
class Car {
var carName : String = ""
init(name : String) {
self.carName = name
}
}
var c = Car.init(name: "宝马")
var c2 = c
c2.carName = "奔驰"
print(c.carName,c2.carName)
- 结构体是值类型,其 实例将会被赋予变量或者常量和被函数调用时被复制
- 结构体中的成员可以包括属性、类型别名、数组、其他结构体和枚举声明
- 结构体声明不能包含析构器或者协议声明,但是可以包括任意协议的实现,不能继承类、枚举、其他结构体
还有的区别就是类是属于面向对象编程,结构体属于面向协议的编程,所谓面向协议编程其实就是面向对象的升级。在swift中推荐使用的是使用结构体,类在swift中不处于主流的地位,还有就是结构体也能够实现类的全部功能,结构体更模块化,默认实现初始化方法并且不用考虑ARC