Jon*_*ran 7 ruby serialization symbols
有没有办法在Ruby中访问符号表中的所有内容?我希望能够序列化或以其他方式保存程序运行的当前状态.为此,我似乎需要能够遍历范围内的所有变量.
我认为他来自perl背景,并且他想获得脚本中定义的所有变量并将它们序列化.这样,当他加载文件时,他会让他们回来.我仍在搜索如何获取变量列表,但是将使用Marshal.dump进行序列化,并使用Marshal.load进行回读.一旦找到如何获取所有已定义变量的列表,我将编辑该帖子.
编辑:发现它!
您可以通过调用以下方法获取所有变量的列表:
local_variablesglobal_variables
如果您还没有获得序列化代码,我会建议这样的事情:
local_variables.each {|var| my_array << MyVarObject.new(var,eval(var)) } # eval is used to get the value of the variable
然后序列化数组:
data = Marshal.dump(my_array)
File.open("myfile.ser","w") do |file|
file.puts data
endRun Code Online (Sandbox Code Playgroud)
如果我正确理解了您的问题 - 您希望看到程序中的所有符号,那么以下内容应该可以解决问题:
puts Symbol.all_symbols.inspect
Run Code Online (Sandbox Code Playgroud)
“all_symbols”类方法将返回当前程序中每个符号的数组。
| 归档时间: |
|
| 查看次数: |
1870 次 |
| 最近记录: |