gpt4 book ai didi

ruby - Ruby 中是否有可变持久性?

转载 作者:太空宇宙 更新时间:2023-11-03 17:28:23 25 4
gpt4 key购买 nike

在 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/

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