Rubyリファレンス: Home

class_variable_defined? (Module)

Edit   History

標準クラス・モジュール > Module > class_variable_defined?

mod.class_variable_defined?(name)

class_variable_defined?メソッドは、クラスやモジュールにクラス変数があるかどうかを調べます。引数nameには変数名を:@@name"@@name"のようにシンボルか文字列で渡します。その変数があればtrueを、なければfalseを返します。

引数に:@nameのようにクラス変数と見なされない名前を渡すと例外NameErrorが発生します。

そのクラスだけでなく、親クラスやインクルードしたモジュールにクラス変数があればtrueが返ります。

class Product
  @@product_count = 0
end
class Book < Product
  @@book_count = 0
end
 
p Book.class_variable_defined?(:@@product_count)
p Book.class_variable_defined?(:@@book_count)
true
true

関連項目