Swift Optional類型

Swift 4還引入了Optional類型,它處理缺少值。 Optional簡單的解釋是:“有一個值,它等於x”或“根本沒有值”。

一個Optional本身就是一種類型,實際上是Swift 4的新超級枚舉之一。 它有兩個可能的值,NoneSome(T),其中T是Swift 4中可用的正確數據類型的關聯值。

這是一個Optional的整數聲明 -

var perhapsInt: Int?

下麵是一個OptionalString聲明 -

var perhapsStr: String?

通過以下示例來瞭解Optional如何在Swift 4中工作 -

var myString:String? = nil

if myString != nil {
   print(myString)
} else {
   print("myString has nil value")
}

當使用playground運行上述程式時,得到以下結果 -

myString has nil value

Optional類似於在Objective-C中使用nil和指針,但它們適用於任何類型,而不僅僅是類。

1.強制解包

如果將變數定義為Optional,那麼要從此變數中獲取值,必須將其解包。在變數的末尾添加一個感嘆號。

看看下麵一個簡單的例子 -

var myString:String?

myString = "Hello, Swift 4!"

if myString != nil {
   print(myString)
} else {
   print("myString has nil value")
}

當使用playground運行上述程式時,得到以下結果 -

Optional("Hello, Swift 4!")

現在應用解包來獲取變數的正確值 -

var myString:String?

myString = "Hello, Swift 4!"

if myString != nil {
   print( myString! )
} else {
   print("myString has nil value")
}

當使用playground運行上述程式時,得到以下結果 -

Hello, Swift 4!

2.自動解包

可以使用感嘆號而不是問號聲明Optional變數。 這些Optional變數將自動解包,您無需在變數末尾使用任何其他感嘆號來獲取指定的值。 看看一個簡單的例子 -

var myString:String!
myString = "Hello, Swift 4!"

if myString != nil {
   print(myString)
} else {
   print("myString has nil value")
}

當使用playground運行上述程式時,得到以下結果 -

Hello, Swift 4!

3.Optional綁定

使用Optional綁定來確定Optional項是否包含值,如果是,則使該值可用作臨時常量或變數。

if語句的Optional綁定如下 -

if let constantName = someOptional {
   statements
}

下麵是一個簡單的例子來理解Optional綁定的用法 -

var myString:String?
myString = "Hello, Swift 4!"

if let yourString = myString {
   print("Your string has - \(yourString)")
} else {
   print("Your string does not have a value")
}

當使用playground運行上述程式時,得到以下結果 -

Your string has - Hello, Swift 4!

上一篇: Swift變數 下一篇: Swift元組