我使用foo.to_yaml保存了类Foo的对象。现在我在Foo类中添加了一个实例变量,初始化方法中的默认值设置为0。现在,当我尝试从yaml文件加载对象时,实例变量设置为nil。
如果yaml文件不包含该实例变量的任何值,是否有某些方法可以将其设置为0?
从磁盘加载后是否有一些在对象上调用的回调方法?
答案 0 :(得分:1)
您可以为该变量创建读者方法,例如
def your_instance_variable
return "default" unless @your_instance_variable
@your_instance_variable
end
P.S。 前段时间我正在做一些对象序列化的任务,AFAIK Marshal.dump / load的速度要快得多