当前位置 : 主页 > 编程语言 > ruby >

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

来源:互联网 收集:自由互联 发布时间:2021-06-23
鉴于存在require_relative,它接受相对路径和绝对路径,是否有任何理由特别使用require,它只接受绝对路径?所有都需要由require_relative替换吗? 编辑 Sergio Tulentsev注意到我,require_relative不能用
鉴于存在require_relative,它接受相对路径和绝对路径,是否有任何理由特别使用require,它只接受绝对路径?所有都需要由require_relative替换吗?

编辑

Sergio Tulentsev注意到我,require_relative不能用于宝石.它为什么这么设计?如果require_relative只是require的超集并且需要弃用,会出现什么问题?或者,是因为require_relative出现的时间晚于将gem结合到Ruby核心系统中,而require_relative的作者没有对gems系统周围的代码进行修改?

require 'json'

require也可用于需要来自gems的代码,而require_relative不能这样做.因此,后者不能替代前者.

RE:编辑

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

网友评论