buffer

显示已弃用

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

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

缓冲器是用于低级别的二进制数据存储结构,替换使用 string.pack()string.unpack() 的使用。使用例子包括读取和写入现有二进制格式,使用更小的数据存储结构,串行化到自定义二进制格式,并且与固定长度整数和漂浮点类型的数据进行一般工作。

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

许多函数从缓冲器开始接受一个偏移。从缓冲器开始的 0 个偏移访问到第一个字节。所有的偏移、计数和大小都必须为正整数。如果读取或写入操作的字节位于缓冲器之外,就会发生错误。

使用整数和漂浮的方法 readwrite 的方法使用 little-endian 编码。

概要

职能

职能

create

创建一个大小为请求大小的缓冲器,所有初始化为 0 的字节。大小限制为 1 GiB,或 1,073,741,824 字节。请注意,大小限制可能会在设备运行低于内存时失败。

参数

size: number

大小缓冲器。

返回

fromstring

创建一个缓冲器,它将以字符串的内容初始化为内存。缓冲器的大小等同于字符串的长度。

参数

str: string

返回

tostring

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

参数

返回

返回缓冲器的大小以字节。

参数

返回

readi8

读取数据从缓冲器通过重新解释字节在偏移为 8 位签名整数并将其转换为数字。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

返回

readu8

读取数据从缓冲器通过重新解释字节在偏移为 8 位未签名整数,并将其转换为数字。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

返回

readi16

读取数据从缓冲器通过重新解释字节在偏移为 16 位签名整数并将其转换为数字。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

返回

readu16

读取数据从缓冲器通过重新解释字节在偏移为 16 位未签名整数,并将其转换为数字。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

返回

readi32

读取数据从缓冲器通过重新解释字节在偏移为 32 位签名整数并将其转换为数字。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

返回

readu32

读取数据从缓冲器通过重新解释字节在偏移为 32 位未签名整数,并将其转换为数字。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

返回

readf32

读取数据从缓冲器通过重新解释字节在 Offset 作为 32 位漂浮点值并将其转换为数字。如果漂浮点值与任何代表 NaN (不是数字) 的字符串匹配,返回的值可能会转换为不同的静电 NaN 表示。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

返回

readf64

读取数据从缓冲器通过重新解释字节在 Offset 作为 64 位漂浮点值并将其转换为数字。如果漂浮点值与任何代表 NaN (不是数字) 的字符串匹配,返回的值可能会转换为不同的静电 NaN 表示。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

返回

writei8

void

通过将数字转换为 8 位签数整并写入单个字节来将数据写入缓冲器。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

value: number

一个数字,在范围 [-128, 127] 内。

返回

void

writeu8

void

通过将数字转换为 8 位未签名整数并写入单个字节来将数据写入缓冲器。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

value: number

一个数字,数值在 [0, 255] 之间。

返回

void

writei16

void

通过将数字转换为 16 位签数,将数据写入缓冲器,并将其重新解释为个별 bytes。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

value: number

一个在范围 [-32,768, 32,767] 内的整数数量。

返回

void

writeu16

void

通过将数字转换为 16 位签数整数并将其重新解释为个人字节来写入缓冲器。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

value: number

一个数字,数值在 [0, 65,536] 之间。

返回

void

writei32

void

将数据写入内存,将数字转换为 32 位签数,并将其重新解释为个人字节。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

value: number

一个数字在范围[-2,147,483,648, 2,147,483,647]之间。

返回

void

writeu32

void

将数据写入内存,将数字转换为 32 位签定整数,并将其重新解释为个별内容。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

value: number

一个数字,在范围内 [0, 4,294,967,295] 之间。

返回

void

writef32

void

通过将数字转换为 32 位漂浮点值并将其重新解释为个人字节来将数据写入缓冲器。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

value: number

单个精度漂浮点数。

返回

void

writef64

void

通过将数字转换为 64 位漂浮点值并将其重新解释为个人字节来写入内存。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

value: number

双精度漂浮点数。

返回

void

readstring

从指定的 offset 缓冲器上读取长度为 count 的字符串。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

count: number

长度要已读。

返回

writestring

void

将数据从字符串写入指定的 offset 内的缓冲器。如果指定的 count 是可选的,只有 count 字节从字符串中取得。

参数

offset: number

从缓冲器内存的开始,从 0 开始。

value: string

要写的数据。

count: number

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

返回

void

copy

void

count 开始,从 source 起,复制到 sourceOffset 在 1> targetOffset1> 下。

source 和 target 可能相同。复制在同一缓冲器中的相同区域内的内容就像将源区域复制到临时缓冲器中,然后该缓冲器复制到目标。

参数

target: buffer

缓冲器到内存复制数据。

targetOffset: number

从缓冲器内存的开始,从 0 开始。

source: buffer

缓冲器从数据.

sourceOffset: number

从缓冲器内存的开始,从 0 开始。

默认值:0
count: number

要复制的字节数。如果未 omitted,整个 source 数据从 sourceOffset 开始的所有数据都将被取得。

返回

void

fill

void

count 字节设置在缓冲器开始于指定的 offsetvalue 之间。

参数

为输入数据创建缓冲器。

offset: number

从缓冲器内存的开始,从 0 开始。

value: number

一个数字,数值在 [0, 255] 之间。

count: number

要写的字节数。如果未写入,所有写入后的字节都将设置为空。

返回

void