1

マークは、!Swift のオプションの値に使用され、ラップされた値を抽出しますが、値は!:なしで抽出できます。

var optionalString: String? = "optionalString"
println(optionalString)

を使用した別の例!:

var optionalString: String? = "optionalString"
println(optionalString!)

上記のコードは両方とも正しい値を取得するので、 を使用する場合と使用しない場合の違いは何だろうかと思い!ます。オプションの値が nil またはその他の場合に実行時にエラーを検出するためだけですか? 前もって感謝します。

4

3 に答える 3

1

あなたの質問は、本「The Swift Programming Language: iBooks 」で回答されています

ダウンロードして「!」で検索してください。

ここで質問しなくても、答えは簡単に見つかります。今後の参考のために、最初に必ずマニュアルを参照してください。

「Swift プログラミング言語」より:

オプションに値が含まれているかどうかを調べるには、「if」ステートメントを使用できます。オプションに値がある場合は、「true」と評価されます。値がまったくない場合は、「false」と評価されます。

オプションに値が含まれていることを確認したら、オプションの名前の末尾に感嘆符 (!) を追加することで、基になる値にアクセスできます。感嘆符は効果的に、「このオプションには確かに価値があることを知っています。使用してください」と言っています。これは、オプションの値の強制アンラップとして知られています。

于 2014-06-15T14:41:25.847 に答える
1

今までSwiftについて聞いたことがありませんが、ドキュメントを読むと明らかです

「! 演算子を使用して nil の値を持つオプションをアンラップすると、実行時エラーが発生します。」

アプリケーションnilで が通常の状況で有効で期待される値である場合、および/またはコードでそれをトラップして処理したい場合は、使用しないことをお勧めします。予期しない場合はnil、デバッグ支援として使用してください。ランタイム エラーは、OS によって報告されたメッセージでプログラムが終了することを示唆しています。

于 2014-06-15T14:30:59.643 に答える