6

CONSTクラスの定数にTestアクセスしたいとき

class Test
  CONST = 7
end

クラスの外から、私はこれをしなければなりません:

puts Test::CONST

これを行うとエラーが発生するのはなぜですか?

puts obj::CONST

objがクラスのオブジェクトである場合、オブジェクトTestを介して定数にアクセスしようとするとエラーが発生するのはなぜですか?

4

1 に答える 1

16

インスタンスオブジェクトとクラスオブジェクトは同じものではないからです。名前空間はクラスオブジェクトに存在し、インスタンスには存在しません。

ただし、インスタンスにそのクラスを要求してから、ドリルダウンすることはできます。

puts obj.class::CONST
于 2013-02-14T01:30:00.157 に答える