可以`require`替换为`require_relative`吗?

saw*_*awa 3 ruby require

鉴于存在require_relative接受相对路径和绝对路径的路径,是否有任何理由特别使用require,它只接受绝对路径?可以全部require替换require_relative

编辑

Sergio Tulentsev注意到我require_relative不能用于宝石.它为什么这么设计?如果require_relative仅仅是超集requirerequire被弃用会出现什么问题?或者,是因为它require_relative出现的时间晚于将宝石纳入Ruby核心系统,而作者require_relative没有对宝石系统周围的代码进行修改?

Ser*_*sev 6

require 'json'
Run Code Online (Sandbox Code Playgroud)

require也可用于从宝石中获取代码,require_relative但不能这样做.因此,后者不能替代前者.

RE:编辑

我认为您的其他问题的答案是:代码复杂性.require具有搜索lib路径的额外功能.require_relative替代基本路径等.统一同一功能中的所有功能可能会使其过于复杂.代码越复杂,出错的可能性就越大.这是我的猜测.