9.可選類型(optional)

  • 1.可選類型的介紹

    • 1.注意:
      可選類型時swift中較理解的一個知識點
      暫時先了解,多利用Xcode的提示來使用
      隨著學習的深入,慢慢理解其中的原理和好處
    • 2.概念:
      在OC開發(fā)中,如果一個變量暫停不使用,可以賦值為0(基本屬性類型)或者賦值為空(對象類型)
      在swift開發(fā)中,nil也是一個特殊的類型.因為和真實的類型不匹配是不能賦值的(swift是強類型語言)
      但是開發(fā)中賦值nil,在所難免.因此推出了可選類型
    • 3.可選類型的取值:
      空值
      有值
  • 2.定義可選類型
    定義一個可選類型有兩種寫法
    最基本的寫法
    語法糖(常用)

    // 錯誤的寫法
    //let string:String = nil
    // 正確的寫法
    // 注意name的類型是一個可選的類型,但是該可選類型可以存放字符串
    // 寫法一
    let name:Optional<String> = nil
    
    //寫法二 定義可選類型(語法糖)常用
    let name1:String? = nil
    
  • 3.可選類型的使用

    • 1.給可選類型賦值
      // 定義可選類型(定義的是字符串)
      var name:String? = nil
      // 錯誤的寫法 因此該可選類型中只能存放字符串
      name = 133
      // 正確的寫法
      name = "王沖"

    • 2.取出可選類型的值,取出可選類型的真實值(解包)
      ! 是強行解包的意思,程序員覺得這里面有值,一旦崩潰就會停在此處,錯誤的提示是讓程序員思考一下,代碼的安全性會更好
      print(name!)

    • 3.如果可選類型為nil,強制取出其中的值(解包),會出錯

    如果可選類型為nil,強制取出其中的值(解包),會出錯

    正確的寫法
    if name != nil {
    print(name!)
    }
    簡單寫法:為了讓在if語句中可以方便使用string
    可選綁定
    if let str = name {
    print(str)
    }

  • 4.真實應用場景
    目的:讓代碼更加嚴謹

    // 通過該方法創(chuàng)建的URL,可能有值,也可能沒有值.
    // 錯誤寫法:如果返回值是nil時,就不能接收了
    // 如果字符串中有中文,則返回值為nil,因此該方法的返回值就是一個可選類型,而使用一個NSURL類型接收是錯誤的
       let url : NSURL = NSURL(string: "www.520it.com")
    
    // 正確寫法:使用可選類型來接收
       let url : NSURL? = NSURL(string: "www.520it.com")
    // 該方式利用類型推導
       let url = NSURL(string: "www.520it.com")
    
    // 通過url來創(chuàng)建request對象:在使用可選類型前要先進行判斷是否有值
    // 該語法成為可選綁定(如果url有值就解包賦值給tempURL,并且執(zhí)行{})
       if let str = url {
          let request = NSURLRequest(url:str as URL)
       }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容