10-Swift中的可選類型

swift中的可選類型

  • 注意:swift

    • 可選類型時swift中很是難理解的一個知識點
    • 暫時先了解,多利用Xcode的提示來使用
    • 隨着學習的深刻,慢慢理解其中的原理和好處
  • 概念:學習

    • 在OC開發中,若是一個變量暫停不使用,能夠賦值爲0(基本屬性類型)或者賦值爲空(對 象類型)
    • 在swift開發中,nil也是一個特殊的類型.由於和真實的類型不匹配是不能賦值的(swift是強語言) 可是開發中賦值nil,在所不免.所以推出了可選類型
  • 可選類型的取值:url

  • 空值code

  • 有值對象

  • 定義可選類型開發

    • 定義一個可選類型有兩種寫法
      • 最基本的寫法
      • 語法糖(經常使用)
// 錯誤寫法
    // let string : String = nil
    // 正確寫法:
    // 寫法一:定義可選類型
    let string : Optional<String> = nil
    // 寫法二:定義可選類型,語法糖(經常使用)
    let string : String? = nil
  • 可選類型的使用
// 演練一:
// 定義可選類型
var string : Optional<String> = nil

// 給可選類型賦值
string = "Hello world"

// 打印結果
print(string)
// 結果:Optional("Hello world")\n
// 由於打印出來的是可選類型,全部會帶Optional


// 演練二:
// 取出可選類型的真實值(解包)
print(string!)
// 結果:Hello world\n

// 注意:若是可選類型爲nil,強制取出其中的值(解包),會出錯
string = nil
print(string!) // 報錯

// 正確寫法:
if string != nil {
    print(string!)
}

// 簡單寫法:爲了讓在if語句中能夠方便使用string
if var str = string {
    print(str)
}
  • 真實應用場景string

    • 目的:讓代碼更加嚴謹
// 經過該方法建立的URL,可能有值,也可能沒有值
// 錯誤寫法:若是返回值是nil時,就不能接收了
let url : NSURL = NSURL(string: "www.baidu.com")

// 正確寫法:使用可選類型來接收
let url : NSURL? = NSURL(string: "www.baidu.com")

// 經過url來建立request對象
if let tempUrl = url {
    let request = NSURLRequest(URL: tempUrl)
}
相關文章
相關標籤/搜索