Swiftでクラスを比較する方法(is, typeof(dynamicType))

Pocket

変数の型を調べる記事で、type(of: )を紹介したけど、クラスの型にも使えるよ。

今回はそれプラス is についてを見てみるよ。

swiftでクラスを比較する

こんな感じで指定のクラスかどうかを is クラス名 で判別できるよ。

Humanもtrueになってることから、継承元(スーパークラス)もtrueになることがわかるね。

これはこれで良いんだけど、特定のクラスのみを判別したい場合はtype(of:)を使うよ。

継承元を無視した特定のクラスのみを比較する

今度はHumanがfalseになるのがわかる。

こんな感じで、type(of: インスタンス) == クラス名.self で比較ができるよ。

それぞれの違いを理解しつつ使い分けをしよう。


【お願い】
1ミリでも役に立ったらTwitterのフォローかYouTubeチャンネルの登録のどちらかをお願いします!(エンジニアに役立つ情報を発信しています)
スポンサーリンク
  • このエントリーをはてなブックマークに追加