PoolByteArray
Array 字节集合。
描述
一个 Array 专门设计用于保存字节。针对内存使用进行了优化,不会造成内存碎片。
注意: 这种类型是按值传递而不是按引用传递。
方法
PoolByteArray ( Array from ) | |
void | |
void | append_array ( PoolByteArray array ) |
decompress ( int buffer_size, int compression_mode=0 ) | |
decompress_dynamic ( int max_output_size, int compression_mode=0 ) | |
empty ( ) | |
hex_encode ( ) | |
void | invert ( ) |
void | |
void | |
void | |
void | |
size ( ) | |
方法说明
- PoolByteArray PoolByteArray ( Array from )
构建新的PoolByteArray
。你可以选择传入一个通用的Array,它将被转换。
- void append ( int byte )
向数组末尾追加一个元素(push_back 的别名)。
- void append_array ( PoolByteArray array )
在这个数组的最后添加PoolByteArray
。
- PoolByteArray compress ( int compression_mode=0 )
返回新的PoolByteArray
,其中的数据被压缩。使用CompressionMode中的一个常数来设置压缩模式。
- PoolByteArray decompress ( int buffer_size, int compression_mode=0 )
返回新的 PoolByteArray
解压数据。 buffer_size
设置未压缩数据的大小。使用 CompressionMode 常量之一设置压缩模式。
- PoolByteArray decompress_dynamic ( int max_output_size, int compression_mode=0 )
返回数据解压后的新 PoolByteArray
。使用 CompressionMode 的常数之一设置压缩模式。此方法仅接受 gzip 和deflate压缩模式。
此方法可能比 decompress
慢,因为它可能需要在解压时多次重新分配其输出缓冲器,因为 decompress
从一开始就知道它的输出缓冲器大小。
GZIP 的最大压缩比为 1032:1,这意味着小型压缩有效载荷极有可能减压到潜在的非常大输出。为了防止这种情况,您可以提供最大尺寸,允许此函数通过 max_output_size
以字节进行分配。通过 -1 将允许无限制输出。如果通过任何正值,并且解压超过给定的字节值,则将返回错误。
- bool empty ( )
该数组为空时,返回 true
。
- String get_string_from_ascii ( )
返回数组内容的副本为String。如果内容是ASCII码,可以通过get_string_from_utf8来对其快速替代。与UTF-8函数不同,该函数将每个字节映射为数组中的一个字符。多字节的序列不会被正确解释。对于解析用户输入的内容,总是使用get_string_from_utf8。
- String get_string_from_utf8 ( )
返回数组内容的副本String。比get_string_from_ascii慢,但支持UTF-8编码的数据。如果不确定数据的来源,请使用此函数。对于用户输入,应该始终首选此函数。
- String hex_encode ( )
返回该数组的十六进制,表示为一个String。
var array = PoolByteArray([11, 46, 255])
print(array.hex_encode()) # Prints: 0b2eff
在数组中给定的位置插入一个新元素。这个位置必须是有效的,或者是在数组的末端(idx == size()
)。
- void invert ( )
将数组中的元素逆序排列。
- void push_back ( int byte )
在数组的末尾追加一个元素。
- void remove ( int idx )
从数组中删除位于索引的元素。
- void resize ( int idx )
设置数组的大小。如果数组增长,则保留数组末尾的元素。如果数组缩小,则将数组截断为新大小。
注意: 添加的元素不会自动初始化为 0,并且会包含垃圾,即不确定值。
改变给定索引处的字节。
- int size ( )
返回数组的大小。
- PoolByteArray subarray ( int from, int to )
返回索引(包括)之间的PoolByteArray
的片断为一个新的PoolByteArray
。任何负的索引都被认为是从数组的末端开始的。