Swift學(xué)習(xí)(八:類和結(jié)構(gòu)體)

1.首先進(jìn)行一下類和結(jié)構(gòu)體的對(duì)比:
  • 共同點(diǎn):
    定義屬性用于存儲(chǔ)值
    定義方法用于提供功能
    定義構(gòu)造器用于生成初始化值
    通過擴(kuò)展增加默認(rèn)實(shí)現(xiàn)的功能
    實(shí)現(xiàn)協(xié)議提供某種標(biāo)準(zhǔn)功能

  • 類還有更多功能:
    允許繼承
    引用計(jì)數(shù)允許對(duì)一個(gè)類的多次引用

2.實(shí)例化類和結(jié)構(gòu)體語(yǔ)法
    class Some{}
    struct SomeStuct{}
3.
  • 結(jié)構(gòu)體中屬性的訪問通過點(diǎn)語(yǔ)法涕烧。

  • 結(jié)構(gòu)體都有一個(gè)自動(dòng)生成的成員主意構(gòu)造器审胸。

  • 結(jié)構(gòu)體和枚舉是值類型翅睛,創(chuàng)建多個(gè)結(jié)構(gòu)體對(duì)象事昌屉,是對(duì)值的復(fù)制订讼,而不是指向相同實(shí)例

      struct SomeStru{
              var width= 0
              var height =0
      }
      let some = SomeStru()
      some.width = 10
    
      let one = some
      one.width = 20
      print("\(one.width).....\(some.width)")       //  20...10
    

在將some賦值給one時(shí),實(shí)際上是將some里的值拷貝給了one缸濒,將拷貝的值存入新的SomeStru實(shí)例中妇拯。someone相互獨(dú)立,不會(huì)影響互相的值脓钾。

  • 類是引用類型售睹,在被賦值到一個(gè)變量或常量時(shí),值不會(huì)被拷貝可训,引用的是已經(jīng)存在的實(shí)例本身而不是值拷貝
4.恒等運(yùn)算符:判斷兩個(gè)常量或變量是否引用同一個(gè)實(shí)例
  • 等價(jià)于===表示兩個(gè)類類型(class type)的常量或者變量引用同一個(gè)類實(shí)例
  • 不等價(jià)于 昌妹!==表示兩個(gè)實(shí)例的值“相等”或“相同”捶枢,判定時(shí)要遵照設(shè)計(jì)者定義的評(píng)判標(biāo)準(zhǔn),因此相對(duì)于“相等”來說飞崖,這是一種更加合適的叫法烂叔。
5.類和結(jié)構(gòu)體的選擇

以下考慮結(jié)構(gòu)體:

  • 該數(shù)據(jù)結(jié)構(gòu)的主要目的是用來封裝少量相關(guān)簡(jiǎn)單數(shù)據(jù)值。
  • 有理由預(yù)計(jì)該數(shù)據(jù)結(jié)構(gòu)的實(shí)例在被賦值或傳遞時(shí)固歪,封裝的數(shù)據(jù)將會(huì)被拷貝而不是被引用蒜鸡。
  • 該數(shù)據(jù)結(jié)構(gòu)中儲(chǔ)存的值類型屬性,也應(yīng)該被拷貝牢裳,而不是被引用逢防。
  • 該數(shù)據(jù)結(jié)構(gòu)不需要去繼承另一個(gè)既有類型的屬性或者行為。
6.字符串(String)贰健、數(shù)組(Array)、和字典(Dictionary)類型的賦值與復(fù)制行為
  • Swift 中恬汁,許多基本類型伶椿,諸如String,Array和Dictionary類型均以結(jié)構(gòu)體的形式實(shí)現(xiàn)氓侧。這意味著被賦值給新的常量或變量脊另,或者被傳入函數(shù)或方法中時(shí),它們的值會(huì)被拷貝约巷。

  • Objective-C 中NSString偎痛,NSArray和NSDictionary類型均以類的形式實(shí)現(xiàn),而并非結(jié)構(gòu)體独郎。它們?cè)诒毁x值或者被傳入函數(shù)或方法時(shí)踩麦,不會(huì)發(fā)生值拷貝,而是傳遞現(xiàn)有實(shí)例的引用氓癌。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末谓谦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子贪婉,更是在濱河造成了極大的恐慌反粥,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疲迂,死亡現(xiàn)場(chǎng)離奇詭異才顿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)尤蒿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門郑气,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腰池,你說我怎么就攤上這事竣贪【荩” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵演怎,是天一觀的道長(zhǎng)匕争。 經(jīng)常有香客問我,道長(zhǎng)爷耀,這世上最難降的妖魔是什么甘桑? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮歹叮,結(jié)果婚禮上跑杭,老公的妹妹穿的比我還像新娘。我一直安慰自己咆耿,他們只是感情好德谅,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著萨螺,像睡著了一般窄做。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上慰技,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天椭盏,我揣著相機(jī)與錄音,去河邊找鬼吻商。 笑死掏颊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的艾帐。 我是一名探鬼主播乌叶,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼柒爸!你這毒婦竟也來了枉昏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤揍鸟,失蹤者是張志新(化名)和其女友劉穎兄裂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阳藻,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晰奖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腥泥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匾南。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蛔外,靈堂內(nèi)的尸體忽然破棺而出蛆楞,到底是詐尸還是另有隱情溯乒,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布豹爹,位于F島的核電站裆悄,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏臂聋。R本人自食惡果不足惜光稼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望孩等。 院中可真熱鬧艾君,春花似錦、人聲如沸肄方。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)权她。三九已至虹茶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間伴奥,已是汗流浹背写烤。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工翼闽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拾徙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓感局,卻偏偏與公主長(zhǎng)得像尼啡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子询微,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容