Ruby中能否用`require_relative`替代`require`来引入文件?
- 内容介绍
- 文章标签
- 相关推荐
本文共计250个文字,预计阅读时间需要1分钟。
关于`require_relative`和`require`的区别,以下是一个简短的
在Ruby中,`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替换基本路径等.统一同一功能中的所有功能可能会使其过于复杂.代码越复杂,出错的可能性就越大.这是我的猜测.
本文共计250个文字,预计阅读时间需要1分钟。
关于`require_relative`和`require`的区别,以下是一个简短的
在Ruby中,`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替换基本路径等.统一同一功能中的所有功能可能会使其过于复杂.代码越复杂,出错的可能性就越大.这是我的猜测.

