Swift-オプション

Swift4も紹介します Optionalsタイプ。値の不在を処理します。オプションは、「値があり、xに等しい」または「値がまったくない」のいずれかを示します。

オプションはそれ自体のタイプであり、実際にはSwift4の新しい超強力な列挙型の1つです。2つの可能な値があります。None そして Some(T)、 どこ T Swift4で使用可能な正しいデータ型の関連値です。

これがオプションの整数宣言です-

var perhapsInt: Int?

これがオプションの文字列宣言です-

var perhapsStr: String?

上記の宣言は、明示的に初期化するのと同じです。 nil これは値がないことを意味します-

var perhapsStr: String? = nil

次の例を見て、Swift4でオプションがどのように機能するかを理解しましょう。

var myString:String? = nil

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

遊び場を使用して上記のプログラムを実行すると、次の結果が得られます-

myString has nil value

オプションは使用に似ています nil Objective-Cのポインタを使用しますが、クラスだけでなく、あらゆるタイプで機能します。

強制アンラッピング

変数を次のように定義した場合 optional、次にこの変数から値を取得するには、次のことを行う必要があります unwrapそれ。これは、変数の最後に感嘆符を付けることを意味します。

簡単な例を見てみましょう-

var myString:String?

myString = "Hello, Swift 4!"

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

遊び場を使用して上記のプログラムを実行すると、次の結果が得られます-

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!

自動開梱

疑問符の代わりに感嘆符を使用して、オプションの変数を宣言できます。このようなオプションの変数は自動的にアンラップされるため、割り当てられた値を取得するために変数の最後に感嘆符を使用する必要はありません。簡単な例を見てみましょう-

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

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

遊び場を使用して上記のプログラムを実行すると、次の結果が得られます-

Hello, Swift 4!

オプションのバインディング

オプションのバインディングを使用して、オプションに値が含まれているかどうかを確認し、含まれている場合は、その値を一時的な定数または変数として使用できるようにします。

オプションのバインディング if ステートメントは次のとおりです-

if let constantName = someOptional {
   statements
}

オプションのバインディングの使用法を理解するために簡単な例を見てみましょう-

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

遊び場を使用して上記のプログラムを実行すると、次の結果が得られます-

Your string has - Hello, Swift 4!