Swift Copy-on-Write:值型別取代原型模式的方式(總結)
Swift Copy-on-Write 在值型別被指派時共用儲存空間,只有其中一方修改的瞬間才會實際複製。本篇說明這項最佳化如何維持值語意,同時降低原型模式的作用。
閱讀文章LANGUAGE · 52 ARTICLES
按新舊順序瀏覽 Swift 語言 文章。
所有文章
Swift Copy-on-Write 在值型別被指派時共用儲存空間,只有其中一方修改的瞬間才會實際複製。本篇說明這項最佳化如何維持值語意,同時降低原型模式的作用。
閱讀文章使用 Swift 撰寫程式碼時,你總會有些疑問:為什麼 Optional 這麼嚴格?為什麼陣列會被複製?為什麼有 guard?逐一深入這些問題,最後會遇到 Swift 從一開始就提出的三個目標:Safe(安全)、Fast(快速)、Expressive(具表達力)。
閱讀文章從擴充字素叢集出發,說明 Swift String 不接受整數索引的原因,並透過實際執行結果確認韓文組合字串的 Character、Unicode scalar 與 UTF-8 差異。
閱讀文章在 Objective-C 程式碼中,用方括號包住的 [receiver message] 語法,看起來就像一般的方法呼叫。
閱讀文章參考複製、淺層複製與深層複製所建立的新資料範圍不同。本文說明 Swift 值型別中包含參考型別時的陷阱,以及 Copy-on-Write 如何確保獨立複製。
閱讀文章Swift guard 會先處理失敗條件,讓正常流程維持平坦。透過可執行範例確認它與 if 不同的編譯器保證、optional binding 的有效範圍,以及 return、throw、continue 的選擇標準。
閱讀文章Swift 的錯誤處理工具,會依照處理失敗的時機與需要保留的資訊而分工。本篇搭配執行結果,整理 throws、do-catch、try?、try! 與 Result 的選擇方式。
閱讀文章