エイリアスかと思ったら違うのでちゃんと記述する
環境
$ ruby -v ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-darwin19]
概要
生成されたインスタンスのクラスを調べたいときは instance_of?
を使う。継承元のクラスも含めて調べたいときは kind_of?
あるいは is_a?
を使う。
実例
Exceptionクラスを継承しているStandardErrorクラスをベースに説明する。
error = StandardError.new # => #<StandardError: StandardError>
継承関係まで見る kind_of?
と is_a?
は継承元のExceptionでもtrueになるが、 instance_of?
は生成したクラスのみにtrue反応をする
error.kind_of?(StandardError) # => true error.kind_of?(Exception) # => true error.is_a?(Exception) # => true error.instance_of?(Exception) # => false error.instance_of?(StandardError) # => true