类 Fiddle::StructArray
结构中数组的包装器
公有类方法
new(ptr, type, initial_values) 单击以切换源代码
调用超类方法
Array::new
# File ext/fiddle/lib/fiddle/struct.rb, line 140 def initialize(ptr, type, initial_values) @ptr = ptr @type = type @is_struct = @type.respond_to?(:entity_class) if @is_struct super(initial_values) else @size = Fiddle::PackInfo::SIZE_MAP[type] @pack_format = Fiddle::PackInfo::PACK_MAP[type] super(initial_values.collect { |v| unsigned_value(v, type) }) end end
公有实例方法
[]=(index, value) 单击以切换源代码
调用超类方法
Array#[]=
# File ext/fiddle/lib/fiddle/struct.rb, line 157 def []=(index, value) if index < 0 || index >= size raise IndexError, 'index %d outside of array bounds 0...%d' % [index, size] end if @is_struct self[index].replace(value) else to_ptr[index * @size, @size] = [value].pack(@pack_format) super(index, value) end end
to_ptr() 单击以切换源代码
# File ext/fiddle/lib/fiddle/struct.rb, line 153 def to_ptr @ptr end