こんにちは、りょうです。Swiftの勉強は順調ですか?
今回は、as演算子について書きたいと思います。
as演算子とは
as演算子は、型をキャストするときに使用する。型のキャストとは、値の型を確認し、可能であれば別の型として扱う操作。
アップキャスト
アップキャストとは、階層関係がある型どうしにおいて、階層の下位となる具体的な型を上位の抽象的な型として扱う操作。Any型はすべての型が暗黙的に準拠しているプロトコルであるため、すべての型はAny型へアップキャスト可能。
ダウンキャスト
ダウンキャストを行うには、as?演算子もしくはas!演算子を使用する。それぞれの演算子の違いは、失敗時の動作にある。
as?演算子は左辺の値を右辺の型の値へダウンキャストし、失敗した場合はnilを返す。as?演算子の結果はキャスト先の型の値、もしくはnilとなるため、結果はOptional<Wrapped>型となる。
as!演算子によるダウンキャストは強制キャスト(forced casting)と言う。as!演算子は左辺の値を右辺の型へダウンキャストし、失敗した場合は実行時エラーとなる。ダウンキャストに失敗した場合、プログラムの実行が継続されないため、as!演算子の結果はOptional<Wrapped>型ではなく、Wrapped型の値。
参考文献