天天看點

SWIFT Optional Value

 SWIFT中有一個類型定義叫可選值,在變量類型後面加一個?号即可定義一個類型為Optional Value的變量,當在使用變量時要用到強制解包!.

 如在頁面上有一個可選輸入年齡的框,在接受資料的時間就可能要定義一個可選值的變量. 

 var age:Int? = 10

 var str:String = "Age is "+String(age!)

 以下為從一個數組中取資料,然後判斷是否存在值 

  var numberOfLegs = ["ant":6, "snake":0, "dog":4]

  var possibleLegCount:Int? = numberOfLegs["fish"] //沒有找到相應的鍵值将會傳回nil

  判斷possibleLegCount是否是nil

  if possibleLegCount == nil{

    println("not found")

  }else{

    var legCount = possibleLegCount! //強制解包

    println("fish's legs is \(legCount)")

    println("fish's legs is \(possibleLegCount)")  //用這種占位方式會自動解包

}

  此時的possibleLegCount一定要是Optional Value類型,否則會報錯.此時程式将會驗證可選值是否可以正常解包,正常的話将會把值解包後指派給legCount變量 

  if let legCount = possibleLegCount { 

 另外SWIFT中的可能值類型其實是一個Enumeration,如下代碼将會列印"My name is Ken",如果将myName的值去掉将會列印"I don't have name"

var myName:String? = "Ken"

switch myName{

case .Some(let name):

    println("My name is \(name)")

case nil:

    println("I don't have name ")

default:

    println("default")