0

foo.to_yamlを使用してクラスFooのオブジェクトを保存しました。ここで、初期化メソッドでデフォルト値が0に設定されたインスタンス変数をFooクラスに追加しました。yamlファイルからオブジェクトを読み込もうとすると、インスタンス変数がnilに設定されます。

yamlファイルにそのインスタンス変数の値が含まれていない場合に0に設定する方法はありますか?

ディスクからロードされた後にオブジェクトで呼び出されるコールバックメソッドはありますか?

4

1 に答える 1

1

その変数のリーダーメソッドを次のように作成できます

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

PS私は少し前にオブジェクトのシリアル化でいくつかのタスクを行っていましたが、AFAIK Marshal.dump/loadははるかに高速でした

于 2009-02-27T16:19:44.200 に答える