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