Swiftの型キャストについて

Swift

こんにちは、りょうです。Swiftの勉強は順調ですか?

今回は、as演算子について書きたいと思います。

as演算子とは

as演算子は、型をキャストするときに使用する。型のキャストとは、値の型を確認し、可能であれば別の型として扱う操作。

アップキャスト

アップキャストとは、階層関係がある型どうしにおいて、階層の下位となる具体的な型を上位の抽象的な型として扱う操作。Any型はすべての型が暗黙的に準拠しているプロトコルであるため、すべての型はAny型へアップキャスト可能。

ダウンキャスト

ダウンキャストを行うには、as?演算子もしくはas!演算子を使用する。それぞれの演算子の違いは、失敗時の動作にある。

 as?演算子は左辺の値を右辺の型の値へダウンキャストし、失敗した場合はnilを返す。as?演算子の結果はキャスト先の型の値、もしくはnilとなるため、結果はOptional<Wrapped>型となる。

as!演算子によるダウンキャストは強制キャスト(forced casting)と言う。as!演算子は左辺の値を右辺の型へダウンキャストし、失敗した場合は実行時エラーとなる。ダウンキャストに失敗した場合、プログラムの実行が継続されないため、as!演算子の結果はOptional<Wrapped>型ではなく、Wrapped型の値。

 

参考文献

[増補改訂第3版]Swift実践入門 ──直感的な文法と安全性を兼ね備えた言語

タイトルとURLをコピーしました