如果我有这个文件夹结构:
rexml
rexml/document
以下语法不是包含其下方所有内容的递归引用吗?
require 'rexml'
如果我还想访问'document'
中的内容,我是否需要编写以下内容?:
require 'rexml/document'
我感到困惑的原因是我看到一些代码,其中作者一个接一个地写了两个require语句:
require 'rexml'
require 'rexml/document'
我不确定这是否真的有必要。
答案 0 :(得分:11)
Ruby的标准require
只加载Ruby文件,而不是文件夹或其他任何东西。当你说“require'rexml'”时,你实际上在$:中的一个路径中“查找'rexml.rb'并加载它。”因此,“require'rexml / document'”在$:中的一个路径中的文件“rexml”中查找文件“document.rb”。
答案 1 :(得分:6)
在Ruby中,require
只需要一个文件。在许多情况下,库/宝石的作者将确保该单个文件需要使用该库所需的所有其他代码,例如,请参阅these lines in the nokogiri library。然而,这可能因库而异,在REXML的情况下,您似乎需要'rexml / document'。