autoload # Ruby
これは何か
怠惰なモジュール(クラス)参照メソッド
autoload の前に require
require の挙動
- require した時点で即読込み
#!/usr/bin/env ruby require 'pathname' #=> true require 'lib/foo' #=> true
autoload
autoload の挙動
- 定数を参照するまで読み込まない(怠惰)
lib/foo.rb
1 #!/usr/bin/env ruby 2 3 class Foo 4 p 'im foo!' 5 end
main.rb
1 #!/usr/bin/env ruby 2 3 autoload :Foo, 'lib/foo' #=> nil ### lib/foo.rb は読み込んでいない 4 5 Foo #=> 'im foo!'