2011-07-27 48 views
1

我正在使用Ruby on Rails 3.0.9,我想檢查一個對象是類還是類實例。例如,如果我有檢索類和類實例的種類

Article # It is a class name 
@article # It is an instance of the Article class 

也許我可以做一些類似如下:

kind?(Article) # => class 
kind?(@article) # => class_instance 

我怎樣才能檢索到的信息?

回答

3

Object有一個名爲class方法:

@article.class # => Article 

還有kind_of?

if @article.kind_of? Class 
    # class type 
elsif @article.kind_of? Article 
    # other type 
end 
+0

我不想檢索類名或類似的東西。我想檢查一個對象本身是一個類還是一個類實例。 – Backo

+0

@Backo查看已更新。 –

+0

我更喜歡用'is_a?'而不是'kind_of?',但這只是個人的喜好。 – nathanvda

1

類是Class類的一個對象:

class A 
end 

Class === A  #=> true 
Class === A.new #=> false 
A === A.new  #=> true 

A.new這裏是一個對象類A