1.Swift既支持面向過程的編程機(jī)制你稚,也支持面向?qū)ο蟮木幊谭绞健?c++支持泛型編程瓷耙,mark泛型編程)
2.Swift提供了隱式的程序入口。
3.Swift不支持原生的指針運(yùn)算刁赖?
4.Swift是編譯型語(yǔ)言搁痛。
5.Swift程序源代碼中可以插入任意多個(gè)空白字符,空白字符包括空格宇弛、Tab鸡典、垂直Tab、退格枪芒、換行和換頁(yè)彻况。
6.Swift不允許直接將可執(zhí)行代碼放在類的定義中,允許直接定義函數(shù)舅踪。
7.對(duì)于只有Swift源代碼的程序纽甘,該源程序中既可以定義一個(gè)或多個(gè)函數(shù),也可以定義一個(gè)或多個(gè)類(還可以定義多個(gè)枚舉硫朦、結(jié)構(gòu)體)贷腕,還可以直接放一行或多行可執(zhí)行代碼———在單個(gè)的Swift源程序中背镇,這些可執(zhí)行代碼將作為Swift程序的入口咬展。
8.對(duì)于包含多個(gè)Swift源代碼的程序,文件名為main.swift的第一行可執(zhí)行代碼將作為Swift程序的入口瞒斩。
9.Playground只是一個(gè)簡(jiǎn)單的測(cè)試環(huán)境破婆,主要用于快速測(cè)試Swift語(yǔ)法功能和驗(yàn)證API功能。
10.框架胸囱,就是一系列函數(shù)祷舀、類等程序單元的集合,它們可系統(tǒng)地提供某一方面的功能。
11.文件的縮略信息圖標(biāo)為C的是類裳扯,圖標(biāo)為M的是方法抛丽,圖標(biāo)為Pr的是協(xié)議,圖標(biāo)為f的是函數(shù)
12.Swift的多行注釋可以嵌套饰豺。
3.Swift語(yǔ)言區(qū)分大小寫亿鲜。
14.Swift是強(qiáng)類型的語(yǔ)言,要求所有的變量和常量必須先聲明冤吨,聲明時(shí)要么通過“ :類型”的形式顯式指定該變量的類型蒿柳,要么為該變量指定初始值——swift編譯器將會(huì)根據(jù)該初始值確定變量的類型。
15.Swift允許一次聲明多個(gè)變量漩蟆,而且不需要多個(gè)變量具有相同的類型垒探。
var a = 20,d:string,c = "swift"
16.Swift整型有以下幾種類型:Int8、Int16怠李、Int32圾叼、Int64、Int(整型長(zhǎng)度與平臺(tái)的原聲字長(zhǎng)相同)
17.無(wú)符號(hào)整型的最大取值是相應(yīng)的有符號(hào)整型的最大取值的2倍加1
18.程序可通過訪問不同整數(shù)類型的min和max屬性來(lái)獲取對(duì)應(yīng)類型的最小值和最大值扔仓。
print(Int16.min)
print(Int16.max)
19.為了提高數(shù)值(包括浮點(diǎn)型)的可讀性褐奥,Swift允許為數(shù)值(包括浮點(diǎn)型)增加下劃線作為分隔符,也可以在數(shù)值前面添加額外的零翘簇。
20.Swift還提供了3個(gè)特殊的浮點(diǎn)型數(shù)值:正無(wú)窮大撬码、負(fù)無(wú)窮大和非數(shù)。例如版保,使用一個(gè)正數(shù)除以0.0將得到正無(wú)窮大數(shù)值呜笑,使用一個(gè)負(fù)數(shù)除以0.0將得到負(fù)無(wú)窮大數(shù)值,0.0除以0.0或?qū)ω?fù)數(shù)開方將得到一個(gè)非數(shù)。(所有正無(wú)窮大數(shù)值都相等彻犁,所有負(fù)無(wú)窮大數(shù)值都相等叫胁,非數(shù)不與任何數(shù)值相等,甚至和非數(shù)自己都不相等)
21.只有浮點(diǎn)數(shù)除以0.0才可以得到正無(wú)窮大數(shù)值或負(fù)無(wú)窮大數(shù)值汞幢,但如果使用整型值除以整數(shù)0將會(huì)引起編譯錯(cuò)誤:division by zero(除0錯(cuò)誤)驼鹅。
22.Swift是一門強(qiáng)類型語(yǔ)言,數(shù)值計(jì)算過程中森篷,必須統(tǒng)一數(shù)據(jù)類型输钩,即進(jìn)行顯式的強(qiáng)制類型轉(zhuǎn)換。當(dāng)進(jìn)行強(qiáng)制類型轉(zhuǎn)換時(shí)仲智,應(yīng)該盡量向表數(shù)范圍大的數(shù)據(jù)類型轉(zhuǎn)換买乃,這樣程序會(huì)更加安全。Swift語(yǔ)言各種數(shù)值型的表數(shù)范圍由小到大的順序?yàn)椋篒nt8->Int16->Int32->Int64->Float->Double.
23.在Swift語(yǔ)言中钓辆,Bool類型的值只能是true或false剪验,不能用0或者是非0來(lái)代表肴焊。其他數(shù)據(jù)類型的值也不能轉(zhuǎn)換成Bool類型。Bool類型的值主要用作旗標(biāo)來(lái)進(jìn)行流程控制功戚。
24.元組(tuple)使用圓括號(hào)把多個(gè)值組合成一個(gè)復(fù)合值娶眷,元組內(nèi)的值可使用任意類型,元組并不要求元組內(nèi)的值具有相同的類型啸臀。為元組變量賦值時(shí)茂浮,必須為所有成員都指定值。元組的成員可以再次是元組壳咕。
25.Swift允許通過下標(biāo)來(lái)訪問元組的單個(gè)元素席揽,還允許將元組的元素拆分成單個(gè)的常量或變量。如果程序只需要部分元組的元素谓厘,分解的時(shí)候可以使用下劃線作為被忽略部分的占位符幌羞。
eg:print("test元組的第2個(gè)元素的第1個(gè)元素為:\(test.1.0)")
let(swift,oc,lua,_) = score
print("Swift 成績(jī):\(swift)、oc 成績(jī):\(swift)竟稳、lua 成績(jī):\(swift)")
26.定義元組時(shí)可使用key:value對(duì)的形式属桦,相當(dāng)于為元組的每個(gè)元素都指定名字。
27.元組其實(shí)是一種非常實(shí)用的數(shù)據(jù)類型他爸,可以非常方便地記錄數(shù)據(jù)表的一條記錄聂宾。元組、元組類型還廣泛應(yīng)用于Swift函數(shù)聲明诊笤,Swift函數(shù)支持多個(gè)返回值系谐,這多個(gè)返回值也是以元組形式返回的。
28.在任何已有類型的后面緊跟讨跟?即可代表可選類型纪他,可選類型的變量可用于處理“值缺失”的情況。Swift使用nil代表“值缺失”晾匠。
29.Swift中的nil與Objective-C中的nil完全不同茶袒,在Objective-C中,nil代表一個(gè)并不存在的對(duì)象指針凉馆;而在Swift中薪寓,nil并不代表指針——它是一個(gè)
30.Swift中結(jié)構(gòu)體和類的主要區(qū)別是:1??結(jié)構(gòu)體不支持繼承(自然也不支持類型轉(zhuǎn)換了);2??結(jié)構(gòu)體不支持定義析構(gòu)器澜共;3??結(jié)構(gòu)體是值類型向叉,而類是引用類型;
31.只有類的實(shí)例才能被稱為對(duì)象咳胃;枚舉植康、結(jié)構(gòu)體的實(shí)例只能被稱為實(shí)例旷太,不能稱為對(duì)象展懈。
32.枚舉類型:Swift的枚舉不像C語(yǔ)言那么簡(jiǎn)單销睁,也不像Java的枚舉(Java的枚舉是一種特殊的類),Swift的枚舉是一種完全重新定義的類型存崖。
33.與所有語(yǔ)言的枚舉類型類似冻记,Swift中的枚舉用于管理一組有限的值的的集合。
34.Swift的枚舉具有很多面向?qū)ο蟮奶卣骼淳澹琒wift的枚舉支持計(jì)算屬性冗栗,Swift的枚舉支持實(shí)例方法和類型方法,Swift的枚舉支持定義構(gòu)造器來(lái)完成初始化供搀,Swift允許通過擴(kuò)展來(lái)增強(qiáng)原有枚舉的功能隅居,也允許枚舉遵守指定協(xié)議來(lái)提供標(biāo)準(zhǔn)的功能。
35.typealias--類型別名
36.Swift不僅提供了面向過程的編程支持葛虐,也提供了全面的面向?qū)ο蟮木幊讨С痔ピ矗c普通面向?qū)ο蟮木幊陶Z(yǔ)言(只支持定義類)不同,Swift可以定義枚舉屿脐、結(jié)構(gòu)體涕蚤、類3中面向?qū)ο蟮念愋汀F渲惺褂妹杜e的诵、結(jié)構(gòu)體定義的變量是值類型,使用類定義的變量則是引用類型。
37.面向?qū)ο缶幊叹褪且钥陀^世界為編程模型溢豆『蝗保客觀世界的對(duì)象總有狀態(tài)和行為,面向?qū)ο缶幊虅t為對(duì)象提供了屬性和方法代赁,其中屬性用于描述對(duì)象的狀態(tài)撒遣,而方法則用于描述對(duì)象的行為。
38.面向?qū)ο缶幊痰牡湫?大特征:1??封裝:是指把對(duì)象的狀態(tài)數(shù)據(jù)管跺、實(shí)現(xiàn)細(xì)節(jié)隱藏起來(lái)义黎,然后再暴露合適的方法允許外部程序改變對(duì)象的狀態(tài),這些暴露的方法可以保證修改之后對(duì)象的完整性豁跑,有private廉涕、internal和public等訪問權(quán)限控制符;2??繼承:子類繼承父類艇拍,即可獲得父類定義的屬性和方法狐蜕。單繼承支持:每個(gè)子類最多只能有一個(gè)直接父類。Swift也通過協(xié)議彌補(bǔ)了單繼承靈活性不足的缺點(diǎn)卸夕。3??多態(tài):多態(tài)可以充分利用面向?qū)ο蟮撵`活性层释。
39.在Java、Ruby中快集,對(duì)象和實(shí)例是完全相同的贡羔。但在Swift中廉白,實(shí)例和對(duì)象是不同的,只有類的實(shí)例可以被稱為對(duì)象乖寒,而結(jié)構(gòu)體和枚舉的實(shí)例則只能稱為實(shí)例猴蹂,不能稱為對(duì)象。
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.