3
Ruby 프로그램에서 라이브러리를 게으른로드하려고합니다 (호기심에 대해 crack).`autoload`는 에러를 발생 시키지만`require`는 않습니다 (ruby)
내가 이렇게 할 경우 :
require 'rubygems'
require 'crack'
모든 것이 잘 작동한다. 그러나 이것을 시도 할 때 :
require 'rubygems'
autoload :Crack, 'crack'
LoadError가 발생합니다. (로드 할 파일이 없습니다. 균열)
왜이 오류가 발생합니까? '균열'(및 다른 사용자가 설치 한 보석)이 내 $ LOAD_PATH에 없기 때문입니까?
편집 :
또한, autoload
는 표준 라이브러리와 함께 작동 않습니다
autoload :Yaml, 'yaml'
잘 작동 및 오류를 제기하지 않는다.
우수! Kernel # require도 설명해 주셔서 감사합니다! 'require 'rubygems'' 전후에 이걸 넣어야합니까, 아니면 중요합니까? –
이후 : "gem"메소드가 rubygems에 의해 Kernel에 추가되므로 rubygems가 필요할 때까지 사용할 수 없습니다. –