定数

アルファベット大文字 ( [A-Z] ) で始まる識別子は定数として扱われる。定数の定義 (と初期化) は代入によって行われる。メソッドの中では定数は定義できない。

一度定義された定数に再び代入を行おうとすると警告が出力される。定義されていない定数にアクセスすると NameError 例外が発生する。

定数はその定義されたクラス/モジュール内 (メソッドやネストしたクラス/モジュールを含む) から参照できる。

トップレベル (クラス定義の外) で定義された定数は Object に所属する。

あるクラスまたはモジュールで定義された定数を外部から参照するには :: 演算子を用いる。また、トップレベルの定数 (Object クラスで定義されている定数) を確実に参照するためには左辺無しの :: 演算子を用いる。

参考:

Ruby の定数、もうひとつの意外な仕様 | アインシュタインの電話番号

変数と定数ついて | TASK NOTES

定数について | TASK NOTES

定数について – Qiita

定数を参照する – Qiita

定数 – 変数と定数 (Ruby 2.6.0)

Everything You Need to Know About Ruby Constants | RubyGuides

const_defined?

定数が定義されているか確認する

mod.const_defined?(name)

参考:

Ruby で名前空間が定義されているか確認する方法 – Qiita

instance method Module#const_defined? (Ruby 2.6.0)

const_defined? (Module) | Ruby リファレンス (ref.xaio.jp)

Check if a constant is already defined – Stack Overflow

How to check if a constant is defined by its symbol in Ruby? – Stack Overflow

const_get

文字列やシンボルから定数を取得する

mod.const_get(name)

参考:

const_get (Module) – Rubyリファレンス

instance method Module#const_get (Ruby 2.6.0)

クラス名の文字列からクラスを取得する方法 | present

ruby で動的にクラス名を使いたいときは Object.const_get つかうらしい | hiroyukim

Ruby の Module#const_get について調べてみた | freedom-man

const_defined? / const_get の罠 | CLARA ONLINE techblog

クラスを動的に取得するベンチマーク – Qiita

Ruby で文字列をクラス名として扱うには? – QA@IT

const_set

参考:

instance method Module#const_set (Ruby 2.6.0)

remove_const

指定した定数を取り除く。定数に設定されていた値を返す。

mod.remove_const(name)

参考:

instance method Module#remove_const (Ruby 2.6.0)

Ruby で定義したクラスを忘れさせる | IwazerReport

クラスを別物に置き換える – Qiita

class のアンロードとか再定義の仕方を知らなかったのでメモ | zorio の日記

constants

mod.constants

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

参考:

Ruby の定義済の定数一覧 | それマグで!

constants (Module) – Rubyリファレンス

singleton method Module.constants (Ruby 2.6.0)

const_missing

参考:

instance method Module#const_missing (Ruby 2.6.0)

子クラスの定数を参照する

参考:

Ruby の子クラスで定数を再定義したのに親の定数が参照されちゃう | TakiTake の日記

定数の定義場所を調べる

参考:

Ruby で class や const の定義位置を調べる方法 – Qiita

How do I find where a constant is defined in Ruby? – Stack Overflow

定数の定義・読み込みと探索

参考:

Ruby loading and requiring files, constant name resolution | NopeCode

Ruby constant lookup: The good, the bad and the ugly | makandra dev

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です