Ruby:autoload方法有什么作用?

时间:2011-07-25 11:41:43

标签: ruby

module ActionController extend ActiveSupport::Autoload

  autoload :Base
  autoload :Caching
  autoload :Metal
  autoload :Middleware
end

任何人都可以使用示例/示例输出详细说明自动加载方法的作用吗?

2 个答案:

答案 0 :(得分:11)

Autoload可确保在需要时自动加载类或模块。 Peter Cooper的一篇很好的文章名为"Ruby Techniques Revealed: Autoload",解释了要求的差异。我不想在这里重复他的例子: - )

答案 1 :(得分:5)

当要执行的代码在模块中时,

autoload是require的替代方法。主要功能区别在于代码实际执行时。 autoload经常用于ruby gems中,以加快应用程序加载时间。

使用自动加载,第一次使用模块常量时,将从指定的文件加载。有了require,它会在您需要时立即执行。请注意,Ruby implementation自动加载需要模块和文件名,但示例中的Rails version会使文件名成为可选项。

就一个例子而言,实际上并不比你在问题中所拥有的要多得多。当您使用ActionController :: Base,ActionController :: Caching等

时,将执行这些模块