jef*_*rey 2 ruby methods module
我必须使用 Ruby 文件:一个包含一个模块,其中包含一些用于统计计算的方法,在另一个文件中我想调用模块中的方法之一。我怎样才能在 Ruby 中做到这一点?
这是正确的方法吗?
require 'name of the file with the module'
a=[1,2,3,4]
a.method1
Run Code Online (Sandbox Code Playgroud)
Require 需要文件的绝对路径,除非文件位于 Ruby 的加载路径之一。您可以查看默认加载路径puts $:。通常执行以下操作之一来加载文件:
将主文件的目录添加到加载路径,然后使用带有 require 的相对路径:
$: << File.dirname(__FILE__)
require "my_module"
Run Code Online (Sandbox Code Playgroud)
仅加载单个文件的 Ruby 1.8 代码通常包含一个单行代码,例如:
require File.expand_path("../my_module", __FILE__)
Run Code Online (Sandbox Code Playgroud)
Ruby 1.9 添加了 require_relative:
require_relative "my_module"
Run Code Online (Sandbox Code Playgroud)
在模块中,您需要将方法定义为类方法,或使用 Module#module_function:
module MyModule
def self.method1 ary
...
end
def method2
...
end
module_function :method2
end
a = [1,2,3,4]
MyModule.method1(a)
Run Code Online (Sandbox Code Playgroud)