module ActionController extend ActiveSupport::Autoload
autoload :Base
autoload :Caching
autoload :Metal
autoload :Middleware
end
任何人都可以使用示例/示例输出详细说明自动加载方法的作用吗?
答案 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等
时,将执行这些模块