Swift中的引用類(lèi)型和值類(lèi)型

?????? 值類(lèi)型: 每個(gè)實(shí)例都會(huì)保留的有一份獨(dú)有的數(shù)據(jù)拷貝,一般以結(jié)構(gòu)體、枚舉或者元組的形式出現(xiàn)。

?????? 引用類(lèi)型:每個(gè)實(shí)例共享同一份數(shù)據(jù)來(lái)源,一般以類(lèi)的形式出現(xiàn)。

?????? 用通俗的話(huà)來(lái)說(shuō)就是,值類(lèi)型就像是復(fù)印一份報(bào)告一樣,復(fù)印了之后,修改原件上的內(nèi)容,復(fù)印件的內(nèi)容不會(huì)改變;而復(fù)制一個(gè)引用類(lèi)型,則相當(dāng)于我共享我的電腦給你使用,當(dāng)你改變我電腦里面的數(shù)據(jù)時(shí),我使用的時(shí)候數(shù)據(jù)就會(huì)變?yōu)槟愀淖兊?。可能舉例有些不生動(dòng)、形象,但是希望看官能夠明白我所說(shuō)的意思。

值類(lèi)型和引用類(lèi)型的區(qū)別:

?????? 值類(lèi)型和引用類(lèi)型最明顯的區(qū)別在于被復(fù)制之后。當(dāng)一個(gè)值類(lèi)型被復(fù)制的時(shí)候,就相當(dāng)于創(chuàng)造了一個(gè)完全獨(dú)立的實(shí)例,這個(gè)實(shí)例有屬于自己的獨(dú)有的數(shù)據(jù),不會(huì)因?yàn)槠渌麑?shí)例的數(shù)據(jù)變化而有所改變。而引用類(lèi)型的復(fù)制,在改變一個(gè)實(shí)例的時(shí)候,另一個(gè)實(shí)例也會(huì)隨之改變。

什么時(shí)候該用值類(lèi)型呢:

1.要用==運(yùn)算符來(lái)比較實(shí)例的數(shù)據(jù)時(shí);

2.希望某個(gè)實(shí)例的拷貝能保持獨(dú)立的狀態(tài)時(shí);

3.數(shù)據(jù)會(huì)被多個(gè)線(xiàn)程所使用時(shí);

什么時(shí)候該用引用類(lèi)型呢:

1.要用==運(yùn)算符來(lái)比較實(shí)例的身份時(shí);

2.希望創(chuàng)建一個(gè)共享的可變對(duì)象時(shí);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容