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")