国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Swift語(yǔ)言指南(七)--語(yǔ)言基礎(chǔ)之布爾值和類(lèi)型別名

2019-11-14 20:24:47
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

 

布爾值

 

Swift有一個(gè)基本布爾類(lèi)型,叫做布爾(bool),布爾值又稱(chēng)邏輯值(logical),因?yàn)樗荒転檎?true)或假(false)。Swift提供了兩個(gè)布爾常量值:truefalse

1 let orangesAreOrange(橙子是橙子) = true2 let turnipsAreDelicious(蕪菁很美味) = false

orangesAreOrangeturnipsAreDelicious被推斷為布爾類(lèi)型,因?yàn)樗鼈兊闹当徊紶栕置媪拷o初始化了。與前文提到的IntDouble一樣,不需要特意為變量或常量聲明為bool,只要你在創(chuàng)建時(shí)將其值設(shè)為truefalse即可(值為truefalse后,Swift會(huì)推斷其位bool類(lèi)型--Joe.Huang)。已知類(lèi)型的值初始化為常量或變量時(shí),類(lèi)型推斷使Swift代碼更簡(jiǎn)練更具可讀性。

在你使用if這樣的條件判斷語(yǔ)句時(shí),布爾值(bool)非常有用:

1 if turnipsAreDelicious {2     PRintln("Mmm, tasty turnips!")//咦,蕪菁真好吃!3 } else {4     println("Eww, turnips are horrible.")//呸呸呸,蕪菁太難吃了.5 }6 // prints "Eww, turnips are horrible.//輸出 “呸呸呸,蕪菁太難吃了.

諸如if類(lèi)的條件控制語(yǔ)句詳見(jiàn)流程控制一章。

Swift的安全類(lèi)型機(jī)制可以避免非布爾值被當(dāng)做布爾值使用,下面的例子在編譯時(shí)會(huì)報(bào)錯(cuò):

1 let i = 12 if i {3     // this example will not compile, and will report an error4     //這個(gè)例子不會(huì)被編譯,而且會(huì)報(bào)錯(cuò) ,因?yàn)閕是Int型--Joe.Huang5 }

而下面的這個(gè)例子會(huì)編譯通過(guò):

1 let i = 12 if i == 1 {3     // this example will compile successfully4     //這個(gè)例子是成功編譯的,因?yàn)閕==1返回true,返回值是bool--Joe.Huang5 }

i == 1 比較的結(jié)果類(lèi)型為 Bool,因此第二個(gè)例子可以通過(guò)類(lèi)型檢驗(yàn)。i == 1 這類(lèi)的比較在 基本運(yùn)算符(暫未譯到) 一章討論。

與 Swift 中的其他類(lèi)型安全規(guī)則一樣,這些規(guī)則可避免偶然性突發(fā)性的錯(cuò)誤,并確保各段代碼的目的總是明晰的。

 

類(lèi)型別名

 

類(lèi)型別名(type aliases)是已有類(lèi)型的可替代性名稱(chēng)(為已有類(lèi)型提供了一個(gè)可替代性的名稱(chēng)),使用關(guān)鍵字typealias定義一個(gè)類(lèi)型別名。

類(lèi)型別名在你需要為上下文中的已有類(lèi)型提供一個(gè)更貼切的名字時(shí)非常有用,例如當(dāng)處理來(lái)自外部數(shù)據(jù)源的特定寬度的數(shù)據(jù)時(shí):

1 typealias AudioSample(音頻采樣) = UInt16

一旦定義完了類(lèi)型別名,你就可以在其他地方以類(lèi)型別名替代已有類(lèi)型的原始名字:

1 var maxAmplitudeFound = AudioSample.min2 // maxAmplitudeFound is now 0 //maxAmplitudeFound(最大振幅)現(xiàn)在是0,基于上例中AudioSample被定義為十六進(jìn)制的別名后,AudioSample.min就是UInt16.min。--Joe.Huang

此處 AudioSample 作為 UInt16 的別名定義。因?yàn)樗莿e名,因此對(duì) AudioSample.min 的調(diào)用實(shí)際上是調(diào)用 UInt16.min,最終為 maxAmplitudeFound 變量提供一個(gè)初始值 0

 

謝謝,Swifter-QQ群:362232993,同好者進(jìn)~ 

Fork:https://github.com/Joejo/Swift-lesson-for-chinese

 


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 博乐市| 隆尧县| 施秉县| 封丘县| 隆回县| 乌拉特后旗| 滨州市| 鸡东县| 喜德县| 虎林市| 望城县| 宝鸡市| 塘沽区| 通州区| 麻阳| 台北县| 尼勒克县| 绥滨县| 三台县| 峨山| 泗水县| 汤阴县| 思茅市| 苏尼特右旗| 寿阳县| 渝北区| 隆子县| 大同市| 襄汾县| 广宁县| 定远县| 潜山县| 蒙城县| 祁门县| 扶风县| 长宁县| 新疆| 钟祥市| 黑水县| 玛纳斯县| 明溪县|