考虑到存在接受相对路径和绝对路径的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。这是我的猜测。

10-07 12:46