【Ruby】変数の型を確認したい

is_a?メソッド、kind_of?メソッド

(役割)引数で型を指定し、レシーバーがその型に当てはまっていたらtrue、そうでなければfalseを返す。

(特徴)レシーバーのスーパークラス(親クラス)の型も評価できる

is_a?,kind_of?は同じ役割

string = "lotte"

string.is_a?(String)  => true

string.is_a?(Integer)  => false

string.is_a?(Object)  => true

4行目:引数にスーパークラスの型が入っていてもtrueを返している

instance_of?メソッド

(役割)上記のis_a?,kind_of?と同じ。

(特徴)レシーバーの型のみ評価する。厳密なチェックをしたいときに使う。

string = "lotte"

string.instance_of?(String)  => true

string.instance_of?(Integer)  => false

string.instance_of?(Object)  => false

4行目:引数にスーパークラスの型が入っている場合、falseを返している

スーパークラスとは

各要素にあるクラスの親クラスのことをいう。

例)

・文字列 “lotte”のクラスは「String」 → Stringのスーパークラスは「Object」→ Objectのスーパークラスは「Basic Object

String」<「Object」<Basic Object

・整数334のクラスは「Integer」 → Integerのスーパークラスは、数字全般を表す「Numeric」→Numericのスーパークラスは「Object

Integer」<Numeric」<Object

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