タグ

名前空間に関するsnjxのブックマーク (1)

  • モジュールとクラスと名前空間 - @katzchang.contexts

    名前空間の話。入門的なサイトだと全く解説されてなかったりするけど、手元のスクリプト以上になれば必須だよねー。 モジュール/クラスの内部で定義された内部モジュール/内部クラスを外部から参照したい場合、「::」で参照する。 内部モジュール/内部クラスのメソッドを外部から書き換えたい場合、外側のクラス/モジュールを定義しなおして書き換える。直接は書き換えられない。 モジュールメソッド/クラスメソッドは、自身の内部で定義する場合、"def self.foo"で定義できる。 内部から"def Foo.foo"と定義するのと基的には同じ。だが、自身のモジュール/クラス名と同じ名前の内部モジュール/クラス名が既に定義されていた場合、"def Foo.foo"は"Foo::Foo.foo"として定義されるので要注意。 つまり、実行時点の状態によって名前空間が微妙にずれる場合があるってことか。 普段は"d

    モジュールとクラスと名前空間 - @katzchang.contexts
  • 1