3
私のRubyプログラムでは、ライブラリを遅延ロードしようとしています(奇妙なことにcrack)。`autoload`はエラーを発生させますが、` require`は(ruby)を返しません。
私はこれを行う場合は、次の
require 'rubygems'
require 'crack'
すべてが正常に動作しています。しかし、私がこれを試してみると:LoadErrorが発生しています:
require 'rubygems'
autoload :Crack, 'crack'
(そのようなファイルをロードする - 亀裂)
このエラーはなぜ発生していますか?それは '亀裂'(と私の他のユーザがインストールした宝石)が私の$ LOAD_PATHにないからですか?
編集:
さらに、autoload
は標準ライブラリでは動作しない:
autoload :Yaml, 'yaml'
は正常に動作し、エラーを発生させません。
優秀! Kernel#requireも説明してくれてありがとう! 'require 'rubygems''の前後に配置する必要がありますか、それとも重要ですか? –
後: "gem"メソッドがrubygemsによってKernelに追加されるため、rubygemsが必要になるまで利用可能になりません。 –