Swift Day05 結(jié)構(gòu)體和類

1.結(jié)構(gòu)體基本介紹?
  • 在 Swift 標(biāo)準(zhǔn)庫中,絕大多數(shù)的公開類型都是結(jié)構(gòu)體,而枚舉和類只占用很小的一部分
  • 比如 Bool、Int、Double、String、Array、Dictionary 等常見類型都是結(jié)構(gòu)體
    結(jié)構(gòu)體
  • 所有結(jié)構(gòu)體都有一個(gè)編譯器自動(dòng)生成的初始化器(Initializer、初始化方法、構(gòu)造器、構(gòu)造方法)
  • 在第⑥行抵用的,可以傳入所有成員值,用以初始化所有成員(存儲(chǔ)屬性,Stored Property
2. 結(jié)構(gòu)體的生成的初始化器最大特點(diǎn)(目的)是什么?
  • 保證所有成員都有初始值
    自動(dòng)初始化器
3. 下面代碼能編譯通過嗎?
示例
  • 能編譯通過,因?yàn)榭蛇x值都有個(gè)默認(rèn)值 nil
4. 如果結(jié)構(gòu)體中有自定義初始化器,會(huì)對(duì)自動(dòng)生成構(gòu)造器有什么影響?
  • 一旦在定義結(jié)構(gòu)體時(shí)自定義了初始化器,編譯器就不會(huì)再幫它自動(dòng)生成其他初始化器
不再生成自動(dòng)構(gòu)造器
5. 類的基本介紹,對(duì)比結(jié)構(gòu)體?
  • 類的定義和結(jié)構(gòu)體類似,但編譯器并沒有為類自動(dòng)生成可以傳入成員值的初始化器
6. 類的初始器(如果所有成員定義時(shí)指定了初始值)?
類的初始化器
7. 結(jié)構(gòu)體和類的本質(zhì)區(qū)別?
  • 結(jié)構(gòu)體值類型枚舉也是值類型),引用類型指針類型
    本質(zhì)區(qū)別
8. 什么是 Copy On Write 技術(shù)?
  • 在 Swift 標(biāo)準(zhǔn)庫中,為了提升性能,String、Array、Dictionary、Set 采取了 Copy On Write 技術(shù)
  • 僅當(dāng)有 操作時(shí),才會(huì)真正執(zhí)行拷貝操作
  • 對(duì)于標(biāo)準(zhǔn)庫值類型的賦值操作,Swift 能確保最佳性能,所有沒有必要為了保證最佳性能來避免賦值
9. 引用類型在賦值或者當(dāng)成參數(shù)傳遞時(shí)有什么特點(diǎn)?
引用類型
?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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