2009-02-27 152 views
0

我用foo.to_yaml保存了Foo类的一个对象。现在我在初始化方法中将默认值设置为0的实例变量添加到Foo类中。现在当我尝试从yaml文件加载对象时,实例变量被设置为nil。如何使用yaml加载文件时指定默认值?

如果yaml文件不包含该实例变量的任何值,是否可以通过某种方式将其设置为0?

是否有一些回调方法在从磁盘加载后在对象上调用?

回答

1

您可以像

def your_instance_variable 
    return "default" unless @your_instance_variable 
    @your_instance_variable 
end 

附注:该变量创建读者方法 前段时间我正在做对象序列化的一些任务,AFAIK Marshal.dump/load更快了