Rubyリファレンス: Home

constants (Module)

Edit   History

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

mod.constants

constantsメソッドは、クラスやモジュールで定義されている定数名の一覧を配列にして返します。一覧には親クラスやインクルードしたモジュールの定数も含まれます。

Ruby 1.9 Ruby 1.8では配列中の定数名は文字列ですが、Ruby 1.9ではシンボルになります。

Objectに対してconstantsメソッドを呼び出すと、トップレベルの組み込み定数名やクラス名が返ります。

class Product
  TAX_RATE = 0.05
end
 
p Product.constants
p Object.constants.sort[0, 10]
["TAX_RATE"]
["ARGF", "ARGV", "ArgumentError", "Array", "Bignum", "Binding", "Book", "Class",
 "Comparable", "Continuation"]       (Ruby 1.8の場合)
[:TAX_RATE]
[:ARGF, :ARGV, :ArgumentError, :Array, :BasicObject, :Bignum, :Binding, :Book,
:Class, :Comparable]                 (Ruby 1.9の場合)
mod.constants(inherit = false)

Ruby 1.9 Ruby 1.9では、constantsの引数にtrueを指定すると、親クラスやインクルードしたモジュールではなく、そのクラスやモジュールに定義されている定数名だけを返します。デフォルト値はfalseなので、引数を省略するとすべての定数が返ります。

class Product
  TAX_RATE = 0.05
end
class Book < Product
end
 
p Book.constants(false)
p Book.constants
[]
[:TAX_RATE]

関連項目