考虑到存在接受相对路径和绝对路径的require_relative
,是否有理由特别使用只接受绝对路径的require
?所有require
都可以用require_relative
代替吗?
编辑
塞尔吉奥·图伦塞夫注意到require_relative
不能用于宝石。为什么设计成这样?如果require_relative
只是require
的超集而require
被弃用,会出现什么问题?或者,仅仅是因为require_relative
出现的时间比gems并入ruby核心系统的时间晚,而require_relative
的作者没有修改gems系统周围的代码吗?
最佳答案
require 'json'
require
还可以用于要求gems中的代码,而require_relative
不能这样做。因此,后者不能取代前者。重新编辑
我想你的另一个问题的答案是:代码复杂性。
require
具有搜索库路径的额外功能。require_relative
替换基路径等。在同一个函数中统一所有特性可能会使它过于复杂。代码越复杂,就越可能有bug。这是我的猜测。