やったこと
is_a?
、kind_of?
を使ってみます。
確認環境
$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
調査
is_a? と kind_of? の違いはあるのか
下記を見ると、全く同じメソッドのようです。
ruby/object.c at 6b86549df8f6d48eeab3c7b48b3fd9ee02f744ba · ruby/ruby
動かしてみる
is_a.rb
module M
end
class Sample < Object
end
obj = Sample.new
p 'is_a?'
p obj.is_a?(Sample)
p obj.is_a?(Object)
p obj.is_a?(M)
p obj.is_a?(Integer)
p 'kind_of?'
p obj.kind_of?(Sample)
p obj.kind_of?(Object)
p obj.kind_of?(M)
p obj.kind_of?(Integer)
出力結果
$ ruby is_a.rb
"is_a?"
true
true
false
false
"kind_of?"
true
true
false
false