When to use `require`, `load` or `autoload` in Ruby?

前端 未结 4 962
死守一世寂寞
死守一世寂寞 2020-12-02 12:06

I understand the subtle differences between require, load and autoload in Ruby, but my question is, how do you know which one to use?

4条回答
  •  时光取名叫无心
    2020-12-02 12:29

    Generally, you should use require. load will re-load the code every time, so if you do it from several modules, you will be doing a lot of extra work. The lazyness of autoload sounds nice in theory, but many Ruby modules do things like monkey-patching other classes, which means that the behavior of unrelated parts of your program may depend on whether a given class has been used yet or not.

    If you want to make your own automatic reloader that loads your code every time it changes or every time someone hits a URL (for development purposes so you don't have to restart your server every time), then using load for that is reasonable.

提交回复
热议问题