Swift Day05 結構體和類

1.結構體基本介紹?
  • 在 Swift 標準庫中,絕大多數(shù)的公開類型都是結構體,而枚舉和類只占用很小的一部分
  • 比如 Bool、Int、Double、String、Array、Dictionary 等常見類型都是結構體
    結構體
  • 所有結構體都有一個編譯器自動生成的初始化器(Initializer、初始化方法、構造器、構造方法)
  • 在第⑥行抵用的,可以傳入所有成員值,用以初始化所有成員(存儲屬性,Stored Property
2. 結構體的生成的初始化器最大特點(目的)是什么?
  • 保證所有成員都有初始值
    自動初始化器
3. 下面代碼能編譯通過嗎?
示例
  • 能編譯通過,因為可選值都有個默認值 nil
4. 如果結構體中有自定義初始化器,會對自動生成構造器有什么影響?
  • 一旦在定義結構體時自定義了初始化器,編譯器就不會再幫它自動生成其他初始化器
不再生成自動構造器
5. 類的基本介紹,對比結構體?
  • 類的定義和結構體類似,但編譯器并沒有為類自動生成可以傳入成員值的初始化器
6. 類的初始器(如果所有成員定義時指定了初始值)?
類的初始化器
7. 結構體和類的本質區(qū)別?
  • 結構體值類型枚舉也是值類型),引用類型指針類型
    本質區(qū)別
8. 什么是 Copy On Write 技術?
  • 在 Swift 標準庫中,為了提升性能,String、Array、Dictionary、Set 采取了 Copy On Write 技術
  • 僅當有 操作時,才會真正執(zhí)行拷貝操作
  • 對于標準庫值類型的賦值操作,Swift 能確保最佳性能,所有沒有必要為了保證最佳性能來避免賦值
9. 引用類型在賦值或者當成參數(shù)傳遞時有什么特點?
引用類型
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容