在 Matlab 中,我记得能够声明一个数组并对其进行初始化,并且它在整个 Matlab session 期间驻留在内存中。我可以复制它、修改它并通过测试运行它。这个选项在 Ruby 中可用吗?基本上我想创建并填充一个包含 1200 万个 32 位整数的数组。然后我想运行访问该内存的代码。我不想每次调整/调试我的 ruby 代码时都必须重新初始化该数组。
最佳答案
全局变量是一种方式,但我会说有点麻烦。
这意味着您希望对象持久化,因为您希望它在修改代码时可用。然后您需要初始化数据并将其保存在文件中。你有几种可能性,比如 YAML/JSON或者,以二进制但更有效的方式,Marshalling .
如果你有一个数据结构,你可以用这个将它保存在 YAML 中
require "yaml"
foo = SomeObject.new
File.open("bar.yaml", "w") do |fh|
YAML.dump(foo, fh)
end
JSON 几乎是一样的。使用 Marshal.dump 是等效的。
然后您可以在代码中使用一个方法来读取数据。
File.open(fname) do |fh|
foo = YAML.load(fh)
end
关于ruby - Ruby 中是否有可变持久性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/478434/