溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Swift2.0(14)引用類型與數(shù)值類型

發(fā)布時(shí)間:2020-02-25 21:16:06 來(lái)源:網(wǎng)絡(luò) 閱讀:278 作者:ymanmeng123 欄目:移動(dòng)開(kāi)發(fā)
  • 與結(jié)構(gòu)體、枚舉的異同

相同點(diǎn):

     a. 都可以定義屬性保存數(shù)據(jù),定義方法實(shí)現(xiàn)功能

     b. 都可以定義下標(biāo)方法

     c. 都可以定義構(gòu)造方法

     d. 都可以遵循協(xié)議

     e. 都可以使用分類(擴(kuò)展)

不同點(diǎn):

     a. 類支持繼承和擴(kuò)展

     b. 結(jié)構(gòu)體還支持一種成員構(gòu)造方法

     c. 類支持析構(gòu)方法

     d. 類的實(shí)例對(duì)象使用ARC管理內(nèi)存

     e. 類為”引用類型”,結(jié)構(gòu)體和枚舉為“值類型”


  • 值類型與引用類型的特點(diǎn)

值類型的特點(diǎn):

     a. 在賦值以及函數(shù)傳遞過(guò)程中,傳遞的是副本

     b. 值類型包含特殊的方法:變質(zhì)方法

     

引用類型的特點(diǎn):

     a. 在賦值以及函數(shù)傳遞過(guò)程中,傳遞的不是副本而是現(xiàn)有實(shí)例對(duì)象的引用

     b. 兩個(gè)實(shí)例對(duì)象是否為同一引用,使用運(yùn)算符 ===  !== 進(jìn)行判斷

變質(zhì)方法:

     是值類型特有的一種方法,shiyongmutating關(guān)鍵字修飾

     當(dāng)方法內(nèi)部修改該了結(jié)構(gòu)體變量中的數(shù)值時(shí)需要聲明為變質(zhì)

          包括:修改了成員、修改了self等

     如:

    struct Animal {
       
var name:String = ""
       
mutating func changeSelf() {
           
self = Animal(name: "Animal")
        }
    }
   
var a1 = Animal(name: "abc")
   
a1.changeSelf()

    print(a1.name)     //“Animal"


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI