swift4は同じくらいでしょうか?なので!区别

免責事項:この記事はCC 4.0 BY-SAの著作権契約書に従って、ブロガーオリジナル記事です、複製、元のソースのリンクと、この文を添付してください。
このリンクします。https://blog.csdn.net/binglan520/article/details/54631223

 

これは、isKindOfClassにOCに相当します


1、機会を使用するなど、

(1)派生クラスに基本クラスから切り替え、親累積単語に変換することができるアップキャスト(upcasts)

クラス動物{}
クラスカタログ番号:動物は、{}
猫=猫()とする
動物などの動物=猫を聞かせて

(2)曖昧さの除去は、すなわち、変換値のタイプは、特定のデータ型に変換することができます。


せNUM1 = 42 CGFloatはとして
のIntとしてNUM2 = 42せ
INTはとしてNUM3 = 42.5を聞かせて
ダブルとしてnum4 =(42/2)とします

(3)switch文パターンマッチング型チェックを行うことができ

あなたがオブジェクトの種類がわからない場合は、その型をチェックする構文切り替えることができ、およびタイプが異なる状況に対応する治療を使用しようとして対応します。


動物{スイッチ
ケース猫ASのlet CAT:
    印刷(「猫のオブジェクトのタイプであれば、それに応じて行動する」)
ケースとして犬犬を聞かせて:
    印刷(「犬オブジェクトのタイプであれば、それに応じて行動する」)
デフォルト:BREAK
}

2、のように!記念日

下方遷移(ダウンキャスト)を使用します。それがキャストされるので、変換は、実行時のランタイムエラーが失敗した場合に報告されます。サブクラスに親クラスから鋳造されていること


クラスアニマル{}
クラスキャット:動物{}
動物を聞かせて:動物=猫は()
のように猫=動物をしましょう!ネコ

3、として?を使用する機会

?とまったく同じ!変換ルールの演算子として。しかしとして?それがnilオブジェクトを返しますとき変換が失敗した場合。成功したオプションの戻り値の型値(オプション)、私たちは、開梱使用する必要があります。
エラー変換が失敗したときに、変換の100%が成功することを保証することができれば、そう、発生しませんが!として使用することができますか?としてあるため、それ以外のようでしょうか?


動物を聞かせて:動物=キャット()
 
のlet猫=動物のようにしたら?猫{
    印刷( "猫はゼロではない")
}他{
    印刷( "猫がnil")
}


----------------
免責事項:この記事はCSDNブロガー「binglan520の元記事である、CC 4.0 BY-SAの著作権契約書に従ってください、複製、元のソースのリンクと、この文を添付してください。 。
オリジナルリンクします。https://blog.csdn.net/binglan520/article/details/54631223

公開された49元の記事 ウォン称賛7 ビュー30000 +

おすすめ

転載: blog.csdn.net/qq_29680975/article/details/103066080