1

有没有办法在初始化期间验证 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”上进行读取,但它引发了一些其他错误,可能是因为该对象没有完全实例化。

4

1 回答 1

0

写一个def initialize方法。然后将验证放入其中。初始化在对象实例化时运行,因此必须进行检查。

于 2012-06-01T12:19:56.427 回答