0

假设你有下面的代码。

require 'msf/core'

Class xxx

  ...

end

我对此有一些疑问。

我知道如果没有文件,require那么应该是module.

  1. 是否msf/core意味着在某个路径下core.rb的文件夹中搜索一个?msf$:
  2. msf/core似乎是一条路径。它的任何定义语法?
4

1 回答 1

0

我知道如果需要中没有文件,那么应该是一个模块。

据我所知require,与模块名称无关。它总是需要文件名。

那么 ruby​​ 是如何找到模块的呢?

它没有找到。它加载文件及其内容。

msf/core 似乎是一条路径。它有什么定义语法吗?

是的,它是相对于$LOAD_PATH( $:) 的所需文件的路径。文件扩展名可以省略。在这种情况下,这是msf/core.rb您的LOAD_PATH.

顺便说一句,此变量Array可以使用自定义路径进行修改:

$:.unshift('/usr/share/my_rb_files/')

模块和类有什么区别?

在这种情况下没有区别。


我认为RubyDoc有足够的信息来说明它是如何工作的。

于 2014-11-09T13:39:21.823 回答