有没有办法在初始化期间验证BinData :: Record上设置的字段?每个参数的check_value似乎仅在从输入流
读取后进行评估class Foo < BinData::Record
uint8 :bar,:check_value=>lambda{raise 'Here is an error'}
end
Foo.new(:bar=>5) #Does not raise validation exception
我尝试添加'initialize_instance'来读取'to_binary_s',但它会抛出一些其他错误,大概是因为对象没有完全实例化。
答案 0 :(得分:0)
编写def initialize
方法。然后将验证放在其中。
初始化在对象实例化时运行,因此必须进行检查。