在使用YAML.load_file时是否可以强制Ruby调用initialize方法?我想调用该方法,以便为我不序列化的实例变量提供值.我知道我可以将代码分解为一个单独的方法,并在调用YAML.load_file之后调用该方法,但我想知道是否有更优雅的方法来处理这个问题.
我认为你不能。由于您将添加的代码确实特定于要反序列化的类,因此您应该考虑在类中添加该功能。例如,假设Foo您要反序列化的类,您可以添加一个类方法,例如:
class Foo
def self.from_yaml( yaml )
foo = YAML::load( yaml )
# edit the foo object here
foo
end
end
myFoo = Foo.from_yaml( "myFoo.yaml" )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1125 次 |
| 最近记录: |