Swift語言指南(七)--語言基礎之布爾值和類型別名

來源:互聯網
上載者:User

 

布爾值

 

Swift有一個基本布爾類型,叫做布爾(bool),布爾值又稱邏輯值(logical),因為它只能為真(true)或假(false)。Swift提供了兩個布爾常量值:truefalse

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

orangesAreOrangeturnipsAreDelicious被推斷為布爾類型,因為它們的值被布爾字面量給初始化了。與前文提到的IntDouble一樣,不需要特意為變數或常量聲明為bool,只要你在建立時將其值設為truefalse即可(值為truefalse後,Swift會推斷其位bool類型--Joe.Huang)。已知類型的值初始化為常量或變數時,類型推斷使Swift代碼更簡練更具可讀性。

在你使用if這樣的條件判斷語句時,布爾值(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類的條件控制語句詳見流程式控制制一章。

Swift的安全類型機制可以避免非布爾值被當做布爾值使用,下面的例子在編譯時間會報錯:

1 let i = 12 if i {3     // this example will not compile, and will report an error4     //這個例子不會被編譯,而且會報錯 ,因為i是Int型--Joe.Huang5 }

而下面的這個例子會編譯通過:

1 let i = 12 if i == 1 {3     // this example will compile successfully4     //這個例子是成功編譯的,因為i==1返回true,傳回值是bool--Joe.Huang5 }

i == 1 比較的結果類型為 Bool,因此第二個例子可以通過類型檢驗。i == 1 這類的比較在 基本運算子(暫未譯到) 一章討論。

與 Swift 中的其他型別安全規則一樣,這些規則可避免偶然性突發性的錯誤,並確保各段代碼的目的總是明晰的。

 

類型別名

 

類型別名(type aliases)是已有類型的可替代性名稱(為已有類型提供了一個可替代性的名稱),使用關鍵字typealias定義一個類型別名。

類型別名在你需要為上下文中的已有類型提供一個更貼切的名字時非常有用,例如當處理來自外部資料源的特定寬度的資料時:

1 typealias AudioSample(音頻採樣) = UInt16

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

1 var maxAmplitudeFound = AudioSample.min2 // maxAmplitudeFound is now 0 //maxAmplitudeFound(最大振幅)現在是0,基於上例中AudioSample被定義為十六進位的別名後,AudioSample.min就是UInt16.min。--Joe.Huang

此處 AudioSample 作為 UInt16 的別名定義。因為它是別名,因此對 AudioSample.min 的調用實際上是調用 UInt16.min,最終為 maxAmplitudeFound 變數提供一個初始值 0。

 

謝謝,Swifter-QQ群:362232993,同好者進~ 

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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.