Swift 幾個常用概念的區(qū)分
1.fileprivate, private, public, open
1>fileprivate文件內(nèi)部私有
2>private結(jié)構(gòu)體內(nèi)或者類內(nèi)私有
3>public任何作用域訪問横朋。但其他module中不可以被override和繼承拐格,而在module內(nèi)可以被override和繼承
4>open任何作用域訪問,包括override和繼承
5>final 任何地方都不能override
2. enum struct class
1>相同點
1>>三者都可以擁有屬性和方法(enum本身不能儲存屬性小压,但是可以儲存在其關(guān)聯(lián)信息中壤靶,可以有計算屬性)
2>>都可以擁有函數(shù)
3>>class和struct可以擁有自己的構(gòu)造器
4>>可以遵循協(xié)議
5>>支持?jǐn)U展增加功能
2>不同點
1>>類可以繼承,內(nèi)省和轉(zhuǎn)型缚俏,結(jié)構(gòu)體不支持
2>>struct、enum為值類型贮乳,class為引用類型
引用類型忧换,可以通過賦值,改變原來的數(shù)據(jù)向拆,值類型是不可以的
3>>類方法用class關(guān)鍵詞聲明亚茬,enum、struct用static關(guān)鍵詞
4>>用mutaing關(guān)鍵詞聲明要修改struct浓恳、enum內(nèi)容的方法
6>>類調(diào)用是動態(tài)的刹缝,結(jié)構(gòu)體是靜態(tài)綁定,性能方面結(jié)構(gòu)體優(yōu)于類
7>>蘋果官方推薦颈将,盡量使用結(jié)構(gòu)體梢夯,除非你使用到繼承或者引用的時候,類
3.swift 現(xiàn)在的定義變量使用let a = 3這種方式。oc定義使用const.
區(qū)別:let是一個運(yùn)行時常量晴圾,是不可變的颂砸。const常量是一個在編譯時或者編譯解析時被初始化的變量
4.方法有時候會用到static修飾,跟普通的類方法用class修飾區(qū)別
static修飾的屬性或者修飾的函數(shù)都不可以重寫死姚。但是使用class修飾符的人乓,你可以重寫屬性或
者函數(shù)。
當(dāng)static在類中應(yīng)用的時候都毒,static就成為class final的一個別名