1. ホーム
  2. Swift

Swift の Optional 値 && Optional のアンラップ時に予期せず nil が検出された場合の説明

2022-02-17 17:16:48
<パス

Swift でいくつかの Optional を始めてみましょう。これは、次の 2 つの値を持つ列挙型です。


1. none:値がないことを意味します。
2.some:値のクラス

オリジナルオプショナルの定義。

let x: Optional = 10

簡単な定義です。

//'?' is used to define y as an optional Int type, which may have no value, or may be an integer
ley y: Int? = 20

これはxとyを表示します

print(x)
print(y)
//The console shows the following
Optional(10)
Optional(20)

この時点で、2つの合計を表示すると、コンパイラは警告を出します。

コンパイラによると、以下を変更します。

print(x! + y!)
// print the result as :30, without the Optional keyword

この時点で、戻ってxを再定義し、残りのコードはそのままにして、プロジェクトを実行します。

let x: Int? = nil

この時点で、プログラムは印刷位置までクラッシュします

また、コンソールには、解凍中に nil 値が検出されたことを意味するメッセージが表示されます。

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

Swiftでは、'! : 強制的にアンラップし、オプション値から対応する非NULL値を強制的に取得し、実際にnilに遭遇した場合はプログラムをクラッシュさせます。つまり、異なる型間の値を直接操作することはできません! 値がnilでない場合(Optional列挙でnone)、nilはどのデータ型でもなく、計算には参加できない