Ruby中的'require'是否自动包含子文件夹?

Hol*_*ola 3 ruby require

如果我有这个文件夹结构:

rexml
rexml/document
Run Code Online (Sandbox Code Playgroud)

以下语法不是包含其下方所有内容的递归引用吗?

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

或者,如果我还想访问其中的内容,是否需要编写以下内容'document'?:

require 'rexml/document'
Run Code Online (Sandbox Code Playgroud)

我感到困惑的原因是我看到一些代码,其中作者一个接一个地写两个需要语句:

require 'rexml'
require 'rexml/document'
Run Code Online (Sandbox Code Playgroud)

我不确定这是否真的有必要.

Chu*_*uck 11

Ruby的标准require只加载Ruby文件,而不是文件夹或其他任何东西.当你说"需要'REXML’",实际上是说:"在$路径的一个寻找'rexml.rb’:并加载它." 因此,"规定'REXML /文件’"会在在$路径的一个文件夹"REXML"文件"document.rb":


Gre*_*ell 6

在Ruby中,require只需要一个文件.在许多情况下,图书馆/宝石的作者将确保该单个文件需要使用该库所需的所有其他代码,例如,请参阅nokogiri库中的这些行.但是,这可能因库而异,在REXML的情况下,您确实需要"rexml/document".