如何检查一个variables是否是一个类的实例?

在Java中,你可以做instanceof 。 有一个Ruby的等价物吗?

几乎完全一样。 你可以使用Objectinstance_of? 方法:

 "a".instance_of? String # => true "a".instance_of? Object # => false 

Ruby还有is_a?kind_of? 方法(这两个是别名,工作原理完全相同),返回true是超类匹配中的一个:

 "a".is_a? String # => true "a".is_a? Object # => true 

kind_of?is_a? 是同义词。 他们是Ruby的等同于Java的instanceof

instance_of? 不同之处在于,如果对象是该确切类的实例,而不是子类,则只返回true

看看instance_of?kind_of? 方法。 这里是文档链接http://ruby-doc.org/core/classes/Object.html#M000372

我已经成功与klass ,它返回类对象。 这似乎是Rails特定的。

示例用法:

 class Foo end Foo.new.klass # => Foo Foo.new.klass == Foo # => true Foo.new.klass == "Foo" # => false 

还有一个方法来完成这个: Object.is_a? ,它将类对象作为参数,如果self是类的实例或子类的实例,则返回true。