码迷,mamicode.com
首页 > 编程语言 > 详细

Swift中 Class和Struct的区别

时间:2017-06-22 00:23:34      阅读:317      评论:0      收藏:0      [点我收藏+]

标签:值类型   span   自动生成   内存   final   存在   需要   高级   操作符   

类(Class)和结构体(Struct)区别

1.  内存管理方式不一样, 类引用类型, 分配在堆上。 结构体值类型,分配在栈上。 

2. 类, 有析构。 结构体不能有析构, playground中测试直接卡死。

3. 结构体构造函数, 会自动生成带参数的构造器。类不会对有初始化赋值的属性, 生成带参数的构造器。

2. 类有继承特性,结构体没有继承特性,自然也不存在对成员属性和成员方法, 类属性和类方法的重载。

正因为结构体没有继承, 所以操作符函数, 需要static修饰, 而不能用class修饰;

struct : static func +(left:A,right:A) -> A {...}
class: static func +(left:A,right:A) -> A {...} 或者
final class func +(left:A,right:A) -> A {...}

相同点

1, 其他高级特性都差不多,结构体和类都有的特性:

操作符函数, 范型, 协议采纳, 观察器

Swift中 Class和Struct的区别

标签:值类型   span   自动生成   内存   final   存在   需要   高级   操作符   

原文地址:http://www.cnblogs.com/wangliang2015/p/7062044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!