Swift中 Class和Struct的區別


類(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, 其他高級特性都差不多,結構體和類都有的特性:

操作符函數, 范型, 協議采納, 觀察器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM