is INSTANCE = new in class在编译后自动运行或第一次访问它



这个问题说明了一切。例如:

class Foo
  INSTANCE = new
  def initialize
    p "initialized"
  end
end

只在Foo::INSTANCE被访问时打印,编译后不会自动打印。

这是预期行为吗?

现在,如果你不使用常量,它甚至不会进行类型检查。所以常量只有在使用时才会被执行。这在将来可能会改变

最新更新