你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 1.7 Swift可選值, 隱式解析可選 swift 中的? !

1.7 Swift可選值, 隱式解析可選 swift 中的? !

編輯:IOS開發綜合
/**

可選值: optionals

加上個問號

兩種狀態一種是有值,另一種是沒有值nil



可選值可以用 if語句來進行判斷的

*/



// 這個就是可選值,有值是整型9

let optionValue:Int? = 9

print(optionValue)

// Optional(9)



if optionValue !=nil

{

print(optionValue)

// Optional(9)

}



print("------------->>")

// 這裡的!表示對可選值的一個強制解析 (unwrapping解包)

let sValue:Int = optionValue!

print(sValue)

// 9





// 沒有值

let optionValue1:Int? =nil



if optionValue1 ==nil

{

print(optionValue)

// Optional(9)

}



print("------------->>")

// 注意這個不是編譯時的錯誤,是運行時的錯誤

// fatal error: unexpectedly found nil while unwrapping an Optional value

// 空的對象,不可以對它進行強制解析,加上歎號強制解包

// var sValue1: Int = optionValue1!

// print(sValue1)





// 可選綁定

ifvar sValue1 = optionValue1

{

print(sValue1)

}







/**

隱式解析可選類型,兩種狀態

有值,沒有值nil

*/



let imOptValue:Int! = 111



print("------------->>")

if imOptValue !=nil {

print(imOptValue)

}



print("iValue------------->>")

// 可選綁定

iflet iValue = imOptValue {

print(iValue)

}





print("iValue2------------->>")

// 這個地方我們定義了隱式可選類型後呢,不需要在強制解包(加歎號),

let iValue2:Int = imOptValue

print(iValue2)







/**

無論是普通的可選型,還是隱式的可選型,

對於一個沒有值的進行解包都會引起一個運行時的錯誤

*/







/**

1.常量和變量

Swift語言中是用let來定義常量,並且要初始化。var來定義變量,

在let或者var後面申明類型,冒號+空格,然後再加上類型名稱。





2.optional(可選)變量

可選變量用於處理值缺失的情況,有點類似於OC中的nil,可以用於任何類型上,不僅僅是類,不過更加安全。Swift是類型安全的一門語言,可以很少申明類型。

附:Swift和Objective-C中nil的區別

1)OC中,nil是一個指向不存在對象的指針;

2)Swift中,nil不是指針,它是一個確定的值,用於表示值缺失。任何類型的可選狀態都可以設置為nil,不只是對象類型;





3.深入了解Optional變量

Optional其實就是一個enum,裡面有None和Some類型。nil就是Optional.None,非nil就是Optional.Some,通過Some(T)包裝原始值,所以在是用Optional的時候要進行拆包。

聲明一個可選類型的時候要在類型後面加上?如:var str : String?

var strValue: String?

意思不是“我聲明了一個Optional的String值”,而是我聲明了一個Optional類型值。



對一個可選類型的值,需要進行拆包才不會報錯。

拆包有兩種方式,如下:

1)Optional Binding

如:

if let str = strValue

{

let hashValue = str.hashValue

}

*/

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved