有没有办法在初始化期间验证在 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"上进行读取,但它抛出了一些其他错误,可能是因为对象没有完全实例化。
编写一个def initialize
方法。然后将验证放入其中。初始化在对象实例化上运行,因此必须进行检查。