swift—初始 (2)

來源:互聯網
上載者:User

標籤:

邏輯分支簡單體驗
  • 階段性小結
    • Swift 中沒有 C 語言中的非零即真概念
    • 在邏輯判斷時必須顯示地指明具體的判斷條件
    • if 語句條件的 () 可以省略
    • 但是 {} 不能省略
三目
  • 階段性小結
    • Swift 中的 三目 運算保持了和 OC 一致的風格
可選項演練 1

  • 階段性小結

    • 在 Swift 中,不是所有的對象執行個體化方法都會傳回值,在實際開發中需要注意執行個體化函數的傳回型別,例如:

      convenience init?(string URLString: String)
    • 如果有 ? 表示改方法有可能無法執行個體化到正確的對象

    • 這種函數返回的對象,被稱為 可選項,即有可能有值,也有可能沒有值
    • 實際開發時,需要針對這種對象加以判斷,並且在分支內部使用 !,指明改對象確實是存在的
    • 相比在 OC 的開發,尤其在日常練習時,會給定一個能夠啟動並執行值,而在實際運行時,一旦條件不滿足,會直接閃退,這樣使用者體驗會非常不好

Swift 的設計者考慮到因為對類型的強制要求,會讓代碼很難看,因此提供了一個變通的解決方案

演練 2

  • 階段性小結

    • 使用 if let 常量 = 可選建構函式 的方式能夠確保分支內部常量一定是有值的
    • 並且在分支內部不再需要使用 !
    • 這是 Swift 代碼中的一個非常重要的提示
  • 提示

    • 儘管 Swift 提供了類型校正的手段,但是要寫出 優雅 的 Swift 代碼,還是需要多加練習的,否則一不小心就會出現分支嵌套層次很深的代碼
    • 有關 ? 和 ! 的選擇,可以藉助 Xcode 的協助工具輔助,但是強烈建議每次遇到提示時,要多加思考,反覆揣摩
演練3
  • 階段性小結
    • ?? 是一個非常有用的操作符,能夠快速對 nil 進行判斷
    • 如果對象是 nil,則使用 ?? 後面的值代替前面的 nil 值參與計算
    • 在使用 ?? 時,整個部分需要使用 () 封裝
    • 這一技巧在 UITableView 的資料來源方法中尤為重要

swift—初始 (2)

相關文章

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.