【发布时间】:2014-04-25 22:06:27
【问题描述】:
根据下面的示例,我能够创建一个包含 BinData::Array 元素的新 BinData::Record,并且能够从该类类型的新对象创建二进制字符串。但是,当我尝试从该二进制字符串中实例化一个新对象时,新对象并未正确创建。
require 'bindata'
class IntegerArray < BinData::Array
uint16le initial_value: 0
end
class Test < BinData::Record
integer_array :field
end
obj = Test.new
obj[:field] << 15
str = obj.to_binary_s
puts obj.inspect # {"field"=>[15]}
puts str.inspect # "\x0F\x00"
puts str.unpack("S<*") # 15
newobj = Test.read(str)
puts newobj.inspect # {"field"=>[]}
我尝试删除数组的 initial_value,结果相同。提前感谢您的帮助。
【问题讨论】:
标签: arrays binary-data bindata