Object#is_a?とObject#kind_of?
is_a?はkind_of?のエイリアスなので挙動に違いはない
https://docs.ruby-lang.org/ja/latest/method/Object/i/is_a=3f.html
引数で指定されたクラスかそのサブクラスのインスタンスであるときに真を返す
array = ["a", "b", "c"]
array.is_a?(Array)
# => true
array.is_a?(String)
# => false
array.kind_of?(Array)
# => true
array.kind_of?(String)
# => false
is_a?とinstance_of?の違い
instance_of?はオブジェクトがklassクラスの直接のインスタンスであるときに真を返す
https://docs.ruby-lang.org/ja/latest/class/Object.html#I_INSTANCE_OF–3F
array = ["a", "b", "c"]
array.is_a?(Object)
# => true
array.instance_of?(Object)
# => false