假设你有下面的代码。
require 'msf/core'
Class xxx
...
end
我对此有一些疑问。
我知道如果没有文件,require
那么应该是module
.
- 是否
msf/core
意味着在某个路径下core.rb
的文件夹中搜索一个?msf
$:
msf/core
似乎是一条路径。它的任何定义语法?
假设你有下面的代码。
require 'msf/core'
Class xxx
...
end
我对此有一些疑问。
我知道如果没有文件,require
那么应该是module
.
msf/core
意味着在某个路径下core.rb
的文件夹中搜索一个?msf
$:
msf/core
似乎是一条路径。它的任何定义语法?我知道如果需要中没有文件,那么应该是一个模块。
据我所知require
,与模块名称无关。它总是需要文件名。
那么 ruby 是如何找到模块的呢?
它没有找到。它加载文件及其内容。
msf/core 似乎是一条路径。它有什么定义语法吗?
是的,它是相对于$LOAD_PATH
( $:
) 的所需文件的路径。文件扩展名可以省略。在这种情况下,这是msf/core.rb
您的LOAD_PATH
.
顺便说一句,此变量Array
可以使用自定义路径进行修改:
$:.unshift('/usr/share/my_rb_files/')
模块和类有什么区别?
在这种情况下没有区别。
我认为RubyDoc有足够的信息来说明它是如何工作的。