如何使用实例变量在 ruby​​ 中包含/需要/加载文件

发布于 2024-08-24 19:33:14 字数 309 浏览 10 评论 0原文

我想将一个大的变量定义放在一个单独的文件中,以免妨碍它。但我一定做错了什么,因为我的 puts 调用没有输出任何内容。

my_class.rb:

class foobar
  def initialize
    require 'datafile.rb'
    puts @fat_data
  end
end

datafile.rb:

@fat_data = [1,2,3,4,5,6,7,8,9,10]

你可以这样使用 require 吗?

I would like to put a large variable definition in a separate file for the sake of getting it out of the way. I must be doing something wrong though, because my puts call isn't putting anything out.

my_class.rb:

class foobar
  def initialize
    require 'datafile.rb'
    puts @fat_data
  end
end

datafile.rb:

@fat_data = [1,2,3,4,5,6,7,8,9,10]

Can you use require this way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墨小沫ゞ 2024-08-31 19:33:14

您可以执行以下操作:

my_class.rb:

class Foobar
  def initialize
    init_fat_data
    puts @fat_data
  end
end

datafile.rb:

class Foobar
  private

  def init_fat_data
    @fat_data = [1,2,3,4,5,6,7,8,9,10]
  end
end

或者,也许将 datafile.rb 中的 class Foobar 更改为 module MyData然后将该模块包含到 my_class.rb 中的 Foobar 类。

You can do something like this:

my_class.rb:

class Foobar
  def initialize
    init_fat_data
    puts @fat_data
  end
end

datafile.rb:

class Foobar
  private

  def init_fat_data
    @fat_data = [1,2,3,4,5,6,7,8,9,10]
  end
end

Or, perhaps, change class Foobar in datafile.rb to module MyData and then include the module to Foobar class in my_class.rb.

深爱不及久伴 2024-08-31 19:33:14

如果您只想从类定义中获取数据,您还可以使用 __END__ 和 DATA:

无用的 Ruby 技巧:DATA 和 __END__

If you just want to get the data out of the class definition, you could also use __END__ and DATA:

Useless Ruby Tricks: DATA and __END__

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文