buffer

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

缓冲区是一个表示固定大小可变存储块的对象。缓冲库提供创建和操纵缓冲对象的函数,为其所有功能提供全球 buffer 变量内。

缓冲器的目的是用于低级二进制数据存储结构,替换 string.pack()string.unpack() 的使用。使用案例包括阅读和写入现有的二进制格式、以更 компакт的形式处理数据、将自定义二进制格式序列化到固定长度的整数和浮点类型以及对原生内存类型的一般工作,例如固定长度的整数和浮点。

当通过 Roblox API 传送时,包括通过自定义事件发送缓冲,缓冲对象的身份不会被保留,目标将收到一份副本。与其他限制类似,同一个缓冲对象不能从多个 Actor 脚本中使用(并行 Luau)。

许多函数从缓冲区开始接受字节偏移。从缓冲存储块访问开始的 0 偏移访问第一个字节。所有抵消、计数和尺寸都应该是非负整数数字。如果通过任何读写操作访问的字节超出缓冲内存,将抛出错误。

使用整数和漂浮的方法 readwrite 工作的方法使用 小端到端编码

概要

职能

职能

create

创建一个要求大小的缓冲区,所有字节都被初始化为 0 。大小限制为 1 GiB,或 1,073,741,824 字节。请注意,较大的缓冲区可能无法分配,如果设备的内存不足。

参数

size: number

缓冲区的大小。

返回

fromstring

创建一个缓冲区,初始化为字符串内容。缓冲区的大小等于字符串长度。

参数

str: string

返回

tostring

将缓冲数据返回为字符串。

参数

返回

返回缓冲区的大小以字节计。

参数

返回

readbits

读取一系列位元到未签名整数从缓冲区,基于特定的 bitCount 整数从 032 ,包括在内。例如:

请注意,0 位宽只支持在动态计数的一般情况下不出错,阅读 0 位返回 0 。请注意,由于缓冲区的最大尺寸为 1GB, bitOffset 不能像其他缓冲区函数中的 32 位整数数量一样处理。

参数

bitOffset: number

从缓冲存储开始,从 0 开始抵消。

bitCount: number

整数位数来已读。如果这个值不在 032 之间,将抛出错误。

返回

readi8

重新解释偏移处的字节为 8 位签名整数,并将其转换为数字。读取缓冲区的数据以重新解释字节为 8 位签名整数并将其转换为数字。

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

返回

readu8

重新解释偏移处的字节为 8 位未签名整数,并将其转换为数字。

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

返回

readi16

重新解释偏移处的字节为 16 位签名整数,并将其转换为数字。读取缓冲区的数据以重新解释偏移为 16 位签名整数并将其转换为数字。

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

返回

readu16

重新解释偏移处的字节为 16 位未签名整数,并将其转换为数字。

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

返回

readi32

重新解释偏移处的字节为 32 位签名整数,并将其转换为数字。读取缓冲区的数据以重新解释偏移为 32 位签名整数并将其转换为数字。

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

返回

readu32

重新解释偏移处的字节为 32 位未签名整数,并将其转换为数字。

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

返回

readf32

重新解释偏移处的字节为 32 位浮点值,并将其转换为数字,以读取缓冲区的数据。如果浮动点值匹配任何代表 NaN (不是数字) 的位元模式,返回的值可能会转换为不同的静态 NaN 表示。

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

返回

readf64

重新解释偏移处的字节为 64 位浮点值,并将其转换为数字,以读取缓冲区的数据。如果浮动点值匹配任何代表 NaN (不是数字) 的位元模式,返回的值可能会转换为不同的静态 NaN 表示。

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

返回

writebits

()

根据特定的 bitCount 整数从 032 写数据到缓冲区,包括在内。 被视为未签名的 32 位数字,只写最小重要位数。

请注意,0 位宽只支持在动态计数的一般情况下不出错,写入 0 位没有影响。请注意,由于缓冲区的最大尺寸为 1GB, bitOffset 不能像其他缓冲区函数中的 32 位整数数量一样处理。

参数

bitOffset: number

从缓冲存储开始,从 0 开始抵消。

bitCount: number

整数比特计数写入。如果这个值不在 032 范围内,将抛出错误。

value: number

未签名的 32 位数字。只写入最小值 bitCount 位。

返回

()

writei8

()

将数字转换为 8 位签名整数,然后写入一个单字节,将数据写入缓冲区。

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

value: number

范围[-128, 127]中的整数数字。

返回

()

writeu8

()

将数字转换为 8 位未签名整数,然后写入一个单字节,将数据写入缓冲区。

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

value: number

范围内的整数数字 [0, 255]。

返回

()

writei16

()

将数字转换为 16 位签名整数,然后重新解释为单个字节,将数据写入缓冲区

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

value: number

范围[-32,768, 32,767]中的整数。

返回

()

writeu16

()

将数字转换为 16 位未签名整数,然后重新解释为单个字节,将数据写入缓冲区

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

value: number

范围内的整数 [0, 65,535]。

返回

()

writei32

()

将数字转换为 32 位签名整数,然后重新解释为单个字节,将数据写入缓冲区

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

value: number

范围[-2,147,483,648,2,147,483,647]中的整数数字。

返回

()

writeu32

()

将数字转换为 32 位未签名整数,然后重新解释为单个字节,将数据写入缓冲区

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

value: number

范围内的整数 [0, 4,294,967,295]。

返回

()

writef32

()

将数据写入缓冲区,将数字转换为 32 位浮点值,然后重新解释为单个字节

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

value: number

单精度漂浮点数字。

返回

()

writef64

()

将数字转换为 64 位浮点值,然后重新解释为单个字节,将数据写入缓冲区

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

value: number

双精度漂浮点数。

返回

()

readstring

从指定的 offset 位置的缓冲中读取长度为 count 的字符串。

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

count: number

阅已读长度。

返回

writestring

()

将从字符串中写入数据到指定的 offset 缓冲区。如果指定了可选的 count,只有 count 字节从字符串中被取出。

参数

offset: number

从缓冲存储开始,从 0 开始抵消。

value: string

要写的数据。

count: number

从字符串中获取的字节数。该值不能大于字符串长度。

返回

()

copy

()

从偏移 count 开始,从 source 起复制 sourceOffset 字节到 targettargetOffset

sourcetarget 可能是相同的。复制同一缓冲区内的重叠区域,作为如果源区域被复制到临时缓冲区,然后该缓冲区被复制到目标的情况。

参数

target: buffer

用于复制数据的缓冲器。

targetOffset: number

从缓冲存储开始,从 0 开始抵消。

source: buffer

缓冲以从数据中获取。

sourceOffset: number

从缓冲存储开始,从 0 开始抵消。

默认值:0
count: number

要复制的字节数。如果被忽略,整个 source 数据从 sourceOffset 开始的内容都会被获取。

返回

()

fill

()

设置 count 字节在缓冲区开始于指定的 offsetvalue

参数

用于将数据写入的缓冲器。

offset: number

从缓冲存储开始,从 0 开始抵消。

value: number

范围内的整数数字 [0, 255]。

count: number

要写入的字节数。如果未指定,将设置指定偏移后的所有字节。

返回

()