Swift學(xué)習(xí)

Swift類與結(jié)構(gòu)體的區(qū)別

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)


屏幕快照.png
  • 結(jié)構(gòu)體是值類型,其 實(shí)例將會(huì)被賦予變量或者常量和被函數(shù)調(diào)用時(shí)被復(fù)制
  • 結(jié)構(gòu)體中的成員可以包括屬性、類型別名、數(shù)組、其他結(jié)構(gòu)體和枚舉聲明
  • 結(jié)構(gòu)體聲明不能包含析構(gòu)器或者協(xié)議聲明,但是可以包括任意協(xié)議的實(shí)現(xiàn),不能繼承類、枚舉、其他結(jié)構(gòu)體

還有的區(qū)別就是類是屬于面向?qū)ο缶幊?,結(jié)構(gòu)體屬于面向協(xié)議的編程,所謂面向協(xié)議編程其實(shí)就是面向?qū)ο蟮纳?jí)。在swift中推薦使用的是使用結(jié)構(gòu)體,類在swift中不處于主流的地位,還有就是結(jié)構(gòu)體也能夠?qū)崿F(xiàn)類的全部功能,結(jié)構(gòu)體更模塊化,默認(rèn)實(shí)現(xiàn)初始化方法并且不用考慮ARC

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容