【发布时间】:2015-12-02 12:03:05
【问题描述】:
我正在制作一个基于鞋子的 Ruby GUI 应用程序。它只包括一个类:
class Note
attr_reader :text, :title, :color
def initialize(text,title,color)
@text = text
@title = title
@color = color
end
end
还有一个 Note 类型的对象数组
notes = [] OR notes = Array.new
我打算做的是将这个数组保存并加载到磁盘。请帮忙。我打算在不涉及背景细节的情况下直接做这件事。
Marshal 很有用,但在类中使用它似乎有点让人头疼。
请帮忙
【问题讨论】:
-
您不会找到比 Marshal 更简单的解决方案。除此之外,您还可以查看 YAML,或 Sequel 或 Mongoid 等 ORM。
-
但是编组类是一项艰巨的工作,事实上您必须在类中定义
marshal_dump和marshal_load方法,并首先将每个对象显式转换为数组,然后提取实例加载数组中的变量。我一直在寻找更简单的东西,比如在 C++ 中,你所要做的就是:File.read((char*)variable,sizeof(Class));并以类似方式编写。或者也许是一些数据库。实际上,我想非常隐式地保存和加载,而不必指定所有细节。