『ゼロから学ぶSwift』学習ノート(Day 27)——オプションタイプ


オリジナルの文章、転載を歓迎します.転載は明記してください:関東昇のブログ
オプション:
まず、次のコードを見てみましょう.
var n1: Int = 10
n1 = nil         // 
 
let str: String = nil    // 

IntとStringタイプはnilを受け入れられないが、プログラムの実行中にnilにコピーされることは避けられない.Swiftは各データ型にオプションタイプ(optional)を提供し、あるデータ型の後ろに疑問符(?)を付ける.あるいは感嘆符(!)、前のサンプルコードを変更するには、次の手順に従います.
var n1: Int? = 10
n1 = nil
 
let str: String! = nil

Int?とString!いずれも既存のタイプIntとStringのオプションタイプで、nilを受け入れることができます.
 
オプションタイプ値のパッケージ解除
オプションタイプの疑問符(?)または感嘆符(!)いったいどんな違いがあるのだろうか.これは、オプションの「パケットの取り外し」(unwrapping)に関連しています.パケットの取り外しは、オプションのタイプを通常のタイプに変更します.空でないオプションのタイプ値を直接印刷する場合、コードは次のとおりです.
var n1: Int? = 10
print(n1)

出力の結果は、10ではなくOptional(10)である.式n 1+100を計算しようとするとコンパイルエラーが発生します.コードは次のとおりです.
var n1: Int? = 10
print(n1 + 100)      // 

オプションのタイプの値を「パッケージ解除」する必要があります.
「パッケージの取り外し」には、パッケージの取り外しと非表示パッケージが表示されます.
疑問符(?)を使う宣言されたオプションのタイプで、パッケージを分解するときに感嘆符(!)を使用する必要があります.このような取り外し方式を「明示的な取り外し」と呼ぶ.
感嘆符(!)を使う宣言されたオプションのタイプで、パッケージを分解するときに感嘆符(!)を使用しないことができます.この表現を「暗黙的な取り外し」と呼ぶ.
次のコードを見てください.
var n1: Int? = 10
print(n1! + 100)     // 
 
var n2: Int! = 100       
print(n2 + 200)          // 

 
关东升新浪微博@tony_へようこそ関東昇.智捷教室の微信公共プラットフォームに注目し、最新技術文章、図書、教程情報のより多くの逸品iOS、Cocos、モバイル設計課程を理解し、智捷教室の公式サイトに注目してください.http://www.zhijieketang.com智捷教室フォーラムのウェブサイト:http://51work6.com/forum.php