美文网首页
ruby require load include extend

ruby require load include extend

作者: 威尔士的海 | 来源:发表于2019-11-05 22:34 被阅读0次

require load autoload

require

1.kernel method,可以加载ruby文件,也可以加载外部的库。
2.相比load ,针对同一个文件,它只加载一次

load

1.与require很类似,但是load会每次都重新加载文件。
2.大部分情况下,除非你加载的库变动频繁,需要重新加载以获取最新版本,一般建议用require来代替load.

autoload

1.用法稍稍不同:autoload(const_name, 'file_path'), 其中const_name 通常是模块名,或者类名。
2.对于load和require,在ruby运行到require/load时,会立马加载文件,而autoload则只有当你调用module或者class时才会加载文件。

include extend

include

1.当一个类或者模块 include了一个module M时, 则该类或者模块就拥有了该module M的方法。
2.当涉及多个类调用同一方法时,这个方法就可以抽离出来,放入module中,然后类只需include该module即可。这样的做法也正体现了DRY原则。

extend

1.当一个类或者对象使用extend 时,相当于打开了该类或者该对象的单件类,为其添加了单件方法。

pretend

1.相比include,extend, prepend「Available since Ruby 2」的知名度和使用率要少很多。
2.prepend和include很像,当一个类prepend或include 一个模块时,该模块中的方法会成为该类的实例方法。
3.二者的区别在于,模块在祖先链中的位置。 使用include时,模块在包含它的类之上。如果是prepend, 则是在prepend它的类之下。而祖先链中位置的不同,决定了方法调用的顺序。

相关文章

网友评论

      本文标题:ruby require load include extend

      本文链接:https://www.haomeiwen.com/subject/cttmkftx.html