C/OC/Swift的數(shù)據(jù)類型沒那么簡單

數(shù)據(jù)類型決定了值如何存儲(chǔ)到計(jì)算機(jī)內(nèi)存中。在聲明變量時(shí)也可指定它的數(shù)據(jù)類型。不同數(shù)據(jù)類型來存儲(chǔ)不同的信息,所有變量都具有數(shù)據(jù)類型,以決定能夠存儲(chǔ)哪種數(shù)據(jù)。

C語言

C語言的基本數(shù)據(jù)類型有六種:

short、int、long、char、float、double 

除基本數(shù)據(jù)類型外,還有一些構(gòu)造類型,比如:

數(shù)組array,結(jié)構(gòu)體struct,枚舉enum以及聯(lián)合union

OC的數(shù)據(jù)類型

OC是C的超集,所以O(shè)C的基本數(shù)據(jù)類型和C完全相同。
當(dāng)然,作為一個(gè)面向?qū)ο蟮母呒壵Z言,除了基本數(shù)據(jù)類型還定義了一些高級的數(shù)據(jù)類型。
比如在Foundation中,給一些數(shù)據(jù)定義了別名,對應(yīng)的映射關(guān)系是:

NSInteger <---->  long
CGFloat   <---->  double
BOOL      <---->  bool

以上的數(shù)據(jù)類型不需要用指針,不需要手動(dòng)釋放,方法執(zhí)行完成后會(huì)自動(dòng)釋放。

但在OC的Foundation框架中,還是封裝了很多對象類型的屬性。

NSNumber
NSString/NSMutableString
NSArray/NSMutableArray
NSSet/NSMutableSet
NSDictionary/NSMutableDictionary
注意:
對于這些面向?qū)ο蟮膬?nèi)存管理,是特別復(fù)雜的存在。在編譯和運(yùn)行的時(shí)候,都對其做了優(yōu)化。
論證過程很復(fù)雜,大家可以去網(wǎng)上找相關(guān)資料。
只是告訴結(jié)論性的東西。
以上的所有可變類型均是以對象的形式保存在堆中,需要關(guān)注其引用計(jì)數(shù)。
對于不可變類型:
比如NSDictionary、NSArray以及NSValue實(shí)例,除了空字典和空字符串,其余實(shí)例都遵循對象的內(nèi)存管理策略。
NSNumber類創(chuàng)建的對于普通數(shù)據(jù)類型的封裝的實(shí)例,其內(nèi)存管理同樣做了優(yōu)化,不遵循對象的內(nèi)存管理策略。

swift的數(shù)據(jù)類型

swift作為新的語言,采納了很多優(yōu)秀的語言特性,完善了基本數(shù)據(jù)類型,同時(shí)推出了很多高級的數(shù)據(jù)類型。

基本數(shù)據(jù)類型:

1、Int/Float/Double/Bool/Character/String
    
2、Array/Dictionary/元組類型(Tuple)/可選類型(Optional)

對于整型,根據(jù)位數(shù)和有無符號做了很多區(qū)分

Int8、Int16、Int32、Int64
UInt8、UInt16、UInt32、UInt64

推薦使用Int/UInt類型,因?yàn)槠溟L度和當(dāng)前系統(tǒng)長度相同,

* 在32位系統(tǒng)平臺(tái)上,Int和Uint的長度是32位
* 在64位系統(tǒng)平臺(tái)上,Int和Uint的長度是64位

針對浮點(diǎn)型

double: 15位有效數(shù)字
float:  6位有效數(shù)字

沒有明確的說明,浮點(diǎn)數(shù)默認(rèn)就是Double類型

swift中的Bool數(shù)據(jù)類型,只有true和false兩種狀態(tài),沒有0和1的狀態(tài)。

除此之外的有:

類類型Class
結(jié)構(gòu)體類型struct
枚舉類型enum

結(jié)構(gòu)體類型和枚舉類型進(jìn)行了擴(kuò)展,可以添加屬性,定義方法等等。

文末

其實(shí)數(shù)據(jù)類型不局限于此,文中列舉的主要是一些常見的數(shù)據(jù)類型。
此文除了作為簡單介紹外,也希望大家格外關(guān)注OC中NSString類型的內(nèi)存管理,swift中一些類型的高級使用。

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

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,228評論 4 61
  • 為了運(yùn)動(dòng)給自己設(shè)定了一個(gè)離家?guī)坠锏牡貎?,還決定騎行往返。各種拖延終于到太陽雨的正午,還好似乎是半年來第一次沒退縮...
    Rita318閱讀 340評論 0 0
  • 圖文/雨田 唐代大詩人岑參的“忽如一夜春風(fēng)來,千樹萬樹梨花開”,描寫的是冬天的塞外風(fēng)雪銀裝素裹的盛景,夾帶著與友人...
    趕晚集的笨鳥閱讀 484評論 1 4
  • 貝殼在潮水里面奔跑著,有一只螃蟹跑到我的腳上。 我捏住它的鉗子,丟回了海里, 我們已經(jīng)在這兒坐了一下午,直到擁擠的...
    崔羅石閱讀 806評論 0 1
  • 《歡樂頌2》熱播中,又被五美霸屏了呢。我們活著更多時(shí)候在于經(jīng)歷體驗(yàn),三十歲前有大把的時(shí)間,無論感情...
    黎明時(shí)分的燕子閱讀 426評論 0 3

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