gpt4 book ai didi

ruby - 如何在 Ruby 1.9.x 中要求位于同一目录中的类

转载 作者:数据小太阳 更新时间:2023-10-29 08:05:27 26 4
gpt4 key购买 nike

我在某个文件夹中有两个 ruby​​ 文件,分别是 A 和 B。

A类代码如下:

class A
def self.foo
puts "foo"
end
end

A.foo

B类代码如下:

class B
def self.bar
puts "bar"
end
end

B.bar
A.foo

当我尝试运行 B 类文件时,出现以下错误:

bar
b.rb:10:in `<main>': uninitialized constant A (NameError)

我不想使用模块。那么,如何从 B 类中引用 A.foo 呢?

最佳答案

我不知道这是否回答了你的问题,因为我不完全理解你的意图。

您的 b.rb 脚本不知道 a.rb 中的类 A,您知道,因此会出现错误。有几种方法可以告诉 b.rb 使用 a.rb

  1. 你可以添加到文件b.rb

    require 'a'
  2. 您可以像这样运行 b.rb 脚本:

    ruby -r a.rb b.rb

旁注。在这两种情况下,a.rb

中的代码
    A.foo

也被执行。只有当 a.rb 直接运行时,您才能使该代码可运行,方法是将要运行的代码包含在其中:

    if __FILE__ == $0
# code to run when a.rb is executed directly
A.foo
end

关于ruby - 如何在 Ruby 1.9.x 中要求位于同一目录中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10071968/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com