1 struct是值類型桨吊,class是引用類型:
值類型的變量直接包含它們的數(shù)據(jù),對于值類型都有它們自己的數(shù)據(jù)副本凤巨,因此對一個變量操作不可能影響另一個變量.值類型包括結(jié)構(gòu)體 (數(shù)組和字典)视乐,枚舉,基本數(shù)據(jù)類型 (boolean, integer, float等).
引用類型的變量存儲對他們的數(shù)據(jù)引用,對一個變量操作可能影響另一個變量.
二者的本質(zhì)區(qū)別:struct是深拷貝敢茁;class是淺拷貝佑淀。
2 property的初始化不同:
class 在初始化時不能直接把 property 放在默認的 constructor 的參數(shù)里,而是需要自己創(chuàng)建一個帶參數(shù)的 constructor彰檬;而struct可以伸刃,把屬性放在默認的 constructor 的參數(shù)里。
3 變量賦值方式不同:
struct是值拷貝逢倍;class是引用拷貝捧颅。
4 immutable變量:
swift的可變內(nèi)容和不可變內(nèi)容用var和let來甄別,如果初始為let的變量再去修改會發(fā)生編譯錯誤瓶堕。struct遵循這一特性隘道;class不存在這樣的問題。
5 mutating function:
struct 和 class 的差別是 struct 的 function 要去改變 property 的值的時候要加上 mutating郎笆,而 class 不用谭梗。
6 繼承:
struct不可以繼承,class可以繼承宛蚓。
7 struct比class更輕量:
struct分配在棧中激捏,class分配在堆中。
661逻炊,struct 與 class 的區(qū)別(重點:最詳細的答案,1犁享,struct是值類型余素,class是引用類型 2,初始化不同 struct是可以默認初始化 class是需要自定義參數(shù)的炊昆,s...
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來裁着,“玉大人繁涂,你說我怎么就攤上這事《郏” “怎么了扔罪?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長桶雀。 經(jīng)常有香客問我矿酵,道長,這世上最難降的妖魔是什么矗积? 我笑而不...
- 正文 為了忘掉前任坏瘩,我火速辦了婚禮,結(jié)果婚禮上漠魏,老公的妹妹穿的比我還像新娘。我一直安慰自己妄均,他們只是感情好柱锹,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著丰包,像睡著了一般禁熏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上邑彪,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼篮迎!你這毒婦竟也來了男图?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布侦讨,位于F島的核電站驶冒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏韵卤。R本人自食惡果不足惜骗污,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望沈条。 院中可真熱鬧需忿,春花似錦、人聲如沸蜡歹。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽月而。三九已至汗洒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間父款,已是汗流浹背溢谤。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- Swift 中Class和Struct異同 Swift 中類和結(jié)構(gòu)體有很多共同點。共同處在于: 定義屬性用于存儲值...
- Swift 中 struct 是值類型伐憾,而 class 是引用類型勉痴,所以這篇文章 struct 的行為也可以用到所...
- struct 與 class對比 struct是值類型,class是引用類型树肃。值類型的變量直接包含它們的數(shù)據(jù)蒸矛,對于...
- 數(shù)據(jù)類型:struct是值類型,class是引用類型。值類型變量直接包含數(shù)據(jù)雏掠,賦值時也是值拷貝斩祭,或者叫深拷貝,所以...
- Swift主要為我們提供了以下四種”named types“ 分別是:enum乡话、struct摧玫、class和prot...