類和結構
類
類是引用類型屿岂。
使用 Identity Operators(===
, !===
) 來判斷兩個變量(或常量)是否引用同一個實例泣港。
(注意障斋, Identical to 與 Equal to 的區(qū)別)
結構
結構都是值類型酌住。
結構都有一個自動生成的 memberwise initializer 叼旋,用來初始化結構體中的成員屬性伴挚。
引用類型:賦值靶衍、傳遞時,使用的是引用茎芋。
值類型:賦值颅眶、傳遞時,值會被拷貝败徊。
Swift 中帚呼,所有的基本類型都是值類型,包括,整數(shù)煤杀、浮點數(shù)眷蜈、布爾值、字符串沈自、數(shù)組酌儒、字典。String, Array, Dictionary 背后是通過結構體來實現(xiàn)的枯途。然而忌怎,Swift 只會在真正需要拷貝的時候,才進行實際的拷貝動作酪夷。
值類型/引用類型榴啸、常量/變量
值得一提的是,將一個引用類型賦值給常量(let constantName = ReferenceType(...)
)晚岭,依舊可以修改引用類型中的屬性鸥印。
這本不是什么奇怪的事情,不可以修改 constantName
坦报,不代表不可以修改其所引用的實例库说。然而,由于數(shù)組片择、字典這一類基本類型是值類型潜的,如果將TA們賦值給常量,就不能修改里面的元素了字管。