Ruby 中 require 与 include
Stewart Nguyen
2023年1月30日
Ruby
Ruby Methods
本文将阐明 Ruby 中 require 和 include 之间的区别。
为了实现可重用性并使维护更容易获得,我们必须将我们的功能划分为文件和模块。
程序员可以在每个文件中定义任意数量的模块。
在 Ruby 中使用 require 方法
文件名作为字符串传递给 require 方法。它可以是文件的路径,例如 ./my dir/file a.rb 或没有扩展名的简单文件名,例如 file a.rb.
当你使用 require, 时,文件中的代码将被评估并执行。
该示例显示了如何使用 require。in file a.rb 消息将由 file a.rb 中的文件代码打印。
我们将通过在文件 file b.rb 中调用 require 'file_a'来加载 file_a。将打印字符串 in file_a.rb 的结果。
# file_a.rb
puts 'in file_a.rb'
# file_b.rb
require 'file_a'
输出:
in file_a.rb
在 Ruby 中使用 include 方法
与加载整个文件代码的 require 不同,include 采用模块名称并使其所有方法可用于其他类或模块。
下面是 Ruby 中 include 语句的语法。当我们从名为 HelloWorld 的类中调用实例方法 greet 时,我们得到一个缺失错误。
class HelloWorld; end
HelloWorld.new.greet
输出:
NoMethodError: undefined method `greet' for #<HelloWorld:0x007faa8405d5a8>
然后我们创建一个 Greeting 模块并将其包含在我们之前创建的类中。之后调用 greet 将打印一条消息。
module Greeting
def greet
puts 'How are you doing?'
end
end
HelloWorld.include(Greeting)
HelloWorld.new.greet
输出:
How are you doing?
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe