在ruby项目中,能否用`require_relative`替代`require`?
- 内容介绍
- 文章标签
- 相关推荐
本文共计279个文字,预计阅读时间需要2分钟。
关于`require_relative`的疑问,以下是简短的回答:
`require_relative`接受相对路径和绝对路径,而`require`只接受绝对路径。是否需要用`require_relative`替换`require`取决于具体情况。如果你正在处理相对路径,使用`require_relative`是合适的。否则,`require`是更好的选择。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替换基本路径等.统一同一功能中的所有功能可能会使其过于复杂.代码越复杂,出错的可能性就越大.这是我的猜测.
本文共计279个文字,预计阅读时间需要2分钟。
关于`require_relative`的疑问,以下是简短的回答:
`require_relative`接受相对路径和绝对路径,而`require`只接受绝对路径。是否需要用`require_relative`替换`require`取决于具体情况。如果你正在处理相对路径,使用`require_relative`是合适的。否则,`require`是更好的选择。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替换基本路径等.统一同一功能中的所有功能可能会使其过于复杂.代码越复杂,出错的可能性就越大.这是我的猜测.

