buffer

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Un tampon es un objeto que representa un bloque de memoria de tamaño fijo mutable.La biblioteca de búferes proporciona funciones para la creación y manipulación de objetos de búfer, proporcionando todas sus funciones dentro de la variable global buffer.

El tampon está destinado a ser utilizado como una estructura de almacenamiento de datos binarios de bajo nivel, que reemplaza el uso de string.pack() y string.unpack().Los casos de uso incluyen la lectura y escritura de formatos binarios existentes, el trabajo con datos en una forma más compacta, la serialización a formatos binarios personalizados, y el trabajo general con tipos de memoria nativos como enteros de longitud fija y flotantes.

Cuando se pasa a través de las API de Roblox, incluida la transmisión de un buffer a través de eventos personalizados, la identidad del objeto buffer no se preserva y el destino recibirá una copia.Al igual que otras limitaciones, el mismo objeto de buffer no se puede usar desde múltiples Actor scripts (Parallel Luau).

Muchas de las funciones aceptan un desplazamiento en bytes desde el comienzo del búfer.El desplazamiento de 0 desde el inicio del bloque de memoria de búfer accede al primer byte.Todos los desplazamientos, contados y tamaños deben ser números enteros no negativos.Si los bytes que se acceden por cualquier operación de lectura o escritura están fuera de la memoria del búfer, se genera un error.

Los métodos read y write que trabajan con enteros y flotantes usan la codificación de poco a poco.

Resumen

Funciones

Funciones

create

Crea un tamiz de tamaño solicitado con todos los bytes inicializados a 0 .El límite de tamaño es de 1 GiB, o 1,073,741,824 bytes.Tenga en cuenta que los búferes más grandes pueden fallar al asignar si el dispositivo está bajo de memoria.

Parámetros

size: number

Tamaño del buffer.

Devuelve

fromstring

Crea un buffer inicializado al contenido de la cadena. El tamaño del buffer coincide con la longitud de la cadena.

Parámetros

str: string

Devuelve

tostring

Devuelve los datos del búfer como una cadena.

Parámetros

Devuelve

Devuelve el tamaño del buffer en bytes.

Parámetros

Devuelve

readbits

Lee una serie de bits en un entero no firmado a partir del buffer en función de un entero específico bitCount de 0 a 32, incluido.Por ejemplo:

Tenga en cuenta que el ancho de 0 bit se soporta solo para no fallar en casos generalizados donde el número de bits es dinámico, y la lectura de 0 bits devuelve 0 .Tenga en cuenta también que, dado que el tamaño máximo del búfer es de 1 GB, bitOffset no se puede manejar como un número entero de 32 bits como el desplazamiento de bytes en otras funciones de búfer.

Parámetros

bitOffset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

bitCount: number

Recuento de bits enteros para leído. Se lanza un error si este valor no está dentro del rango de 0 a 32, incluido.

Devuelve

readi8

Lee los datos desde el búfer al reinterpretar los bytes en el desplazamiento como un entero firmado de 8 bits y convertirlo en un número.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

Devuelve

readu8

Lee los datos desde el búfer al reinterpretar los bytes en el desplazamiento como un entero no firmado de 8 bits y convertirlo en un número

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

Devuelve

readi16

Lee los datos desde el búfer al reinterpretar los bytes en el desplazamiento como un entero firmado de 16 bits y convertirlo en un número.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

Devuelve

readu16

Lee los datos desde el búfer al reinterpretar los bytes en el desplazamiento como un entero no firmado de 16 bits y convertirlo en un número

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

Devuelve

readi32

Lee los datos desde el búfer al reinterpretar los bytes en el desplazamiento como un entero firmado de 32 bits y convertirlo en un número.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

Devuelve

readu32

Lee los datos desde el búfer al reinterpretar los bytes en el desplazamiento como un entero no firmado de 32 bits y convertirlo en un número

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

Devuelve

readf32

Lee los datos desde el búfer al reinterpretar los bytes en el desplazamiento como un valor de punto flotante de 32 bits y convertirlo en un número.Si el valor de punto flotante coincide con cualquier patrón de bits que represente NaN (no un número), el valor devuelto se puede convertir a una representación silenciosa diferente NaN.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

Devuelve

readf64

Lee los datos desde el búfer al reinterpretar los bytes en el desplazamiento como un valor de punto flotante de 64 bits y convertirlo en un número.Si el valor de punto flotante coincide con cualquier patrón de bits que represente NaN (no un número), el valor devuelto se puede convertir a una representación silenciosa diferente NaN.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

Devuelve

writebits

()

Escribe datos en el búfer en función de un número entero específico de a , incluido.value se trata como un número no firmado de 32 bits y solo se escriben los bits menos significativos bitCount.

Tenga en cuenta que el ancho de 0 bit se soporta solo para no cometer errores en casos generalizados donde el número de bits es dinámico, y escribir 0 bits no tiene efecto.Tenga en cuenta también que, dado que el tamaño máximo del búfer es de 1 GB, bitOffset no se puede manejar como un número entero de 32 bits como el desplazamiento de bytes en otras funciones de búfer.

Parámetros

bitOffset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

bitCount: number

Recuento de bits enteros para escribir. Se lanza un error si este valor no está dentro del rango de 0 a 32, incluido.

value: number

Número de 32 bits sin firmar. Solo se escriben los bits menos significativos bitCount.

Devuelve

()

writei8

()

Escribe datos en el búfer al convertir el número en un entero firmado de 8 bits y escribir un solo byte.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

value: number

Un número entero en el rango [-128, 127].

Devuelve

()

writeu8

()

Escribe datos en el búfer al convertir el número en un entero no firmado de 8 bits y escribir un solo byte.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

value: number

Un número entero en el rango [0, 255].

Devuelve

()

writei16

()

Escribe datos en el búfer al convertir el número en un entero firmado de 16 bits y reinterpretarlo como bytes individuales.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

value: number

Un número entero en el rango [-32,768, 32,767].

Devuelve

()

writeu16

()

Escribe datos en el búfer al convertir el número en un entero no firmado de 16 bits y reinterpretarlo como bytes individuales.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

value: number

Un número entero en el rango [0, 65,535].

Devuelve

()

writei32

()

Escribe datos en el búfer al convertir el número en un entero firmado de 32 bits y reinterpretarlo como bytes individuales.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

value: number

Un número entero en el rango [-2,147,483,648, 2,147,483,647].

Devuelve

()

writeu32

()

Escribe datos en el búfer al convertir el número en un entero no firmado de 32 bits y reinterpretarlo como bytes individuales.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

value: number

Un número entero en el rango [0, 4,294,967,295].

Devuelve

()

writef32

()

Escribe datos en el búfer al convertir el número en un valor de punto flotante de 32 bits y reinterpretarlo como bytes individuales.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

value: number

Un número de punto flotante de precisión única.

Devuelve

()

writef64

()

Escribe datos en el búfer al convertir el número en un valor de punto flotante de 64 bits y reinterpretarlo como bytes individuales.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

value: number

Un número de punto flotante de precisión doble.

Devuelve

()

readstring

Lee una cadena de longitud count de la búfer en el especificado offset.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

count: number

Longitud para leído.

Devuelve

writestring

()

Escribe datos de una cadena en el búfer en el offset especificado.Si se especifica un opcional count , solo se toman count bytes de la cadena.

Parámetros

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

value: string

Datos para escribir.

count: number

Número de bytes a tomar de la cadena. Este valor no puede ser mayor que la longitud de la cadena.

Devuelve

()

copy

()

Copia count bytes desde source a partir del desplazamiento sourceOffset en el target en targetOffset .

Es posible que source y target sean iguales.Copiar una región superpuesta dentro del mismo buffer actúa como si la región de origen se copiara en un búfer temporal y luego ese búfer se copiara al destino.

Parámetros

target: buffer

Búfer para copiar datos en.

targetOffset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

source: buffer

Búfer para tomar los datos de.

sourceOffset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

Valor predeterminado: 0
count: number

Número de bytes para copiar. Si se omiten, se toma todo el source dato que empieza por sourceOffset .

Devuelve

()

fill

()

Establece count bytes en el búfer que comienzan en el especificado offset a value .

Parámetros

Búfer para escribir los datos.

offset: number

Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .

value: number

Un número entero en el rango [0, 255].

count: number

Número de bytes para escribir. Si se omiten, todos los bytes después del desplazamiento especificado se establecer.

Devuelve

()