類和結構體區(qū)別
1,內(nèi)存管理方式不一樣汹买, 類引用類型佩伤, 分配在堆上。 結構體值類型晦毙,分配在棧上生巡。
類 ,有析構见妒。 結構體不能有析構孤荣, playground中測試直接卡死。
結構體構造函數(shù)须揣, 會自動生成帶參數(shù)的構造器盐股。類不會對有初始化賦值的屬性,生成帶參數(shù)的構造器返敬。
2遂庄,類有繼承特性,結構體沒有繼承特性劲赠,自然也不存在對成員屬性和成員方法, 類屬性和類方法的重載涛目。
正因為結構體沒有繼承, 所以操作符函數(shù)凛澎, 需要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塑煎, 其他高級特性都差不多沫换,結構體和類都有的特性:
操作符函數(shù), 范型最铁, 協(xié)議采納讯赏, 觀察器