定数を実装しました
定数を実装しました。
module Outer class C X = 10 end end def m Outer::C::X end Jit.precompile Object, :m puts m # => 10
定数の値はコンパイル時に展開されます。定数の再定義やオートロードにも対応しています。
class_eval辺りと組み合わせると問題が起きるかもしれません。eval系メソッドの取り扱いは、ブロックを実装するときに合わせて考えようと思います。
実装していて気付いたのですが、Rubyでは
nil::C
という書き方ができて、
C
と同じ意味になるのですね。Rubyにありがちですが、たまたま実装の都合でできてしまっているのか正式の文法なのかよくわかりません。自分のコードでは使わない方がよさそうです。