buffer
*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
Crea un buffer.
Crea un buffer desde una cadena.
Convierte un buffer a una cadena.
Devuelve el tamaño del buffer en bytes.
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.
Lee un entero firmado de 8 bits desde el búfer.
Lee un entero no firmado de 8 bits del búfer.
Lee un entero firmado de 16 bits desde el búfer.
Lee un entero no firmado de 16 bits del búfer.
Lee un entero firmado de 32 bits desde el búfer.
Lee un entero no firmado de 32 bits del búfer.
Lee un valor de punto flotante de 32 bits del búfer.
Lee un valor de punto flotante de 64 bits del búfer.
Escribe datos en el búfer en función de un número entero específico de a , incluido.
Escribe un entero firmado de 8 bits al buffer.
Escribe un entero no firmado de 8 bits al búfer.
Escribe un entero firmado de 16 bits al buffer.
Escribe un entero no firmado de 16 bits al buffer.
Escribe un entero firmado de 32 bits al buffer.
Escribe un entero no firmado de 32 bits al búfer.
Escribe un valor de punto flotante de 32 bits al búfer.
Escribe un valor de punto flotante de 64 bits al búfer.
Lee una cadena desde el búfer.
Escribe una cadena al buffer.
Copia bytes entre búferes.
Establece una región de la memoria de búfer a un valor de entero no firmado de 8 bits.
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
Tamaño del buffer.
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:
- buffer.readbits(b, 0, 8) es equivalente a buffer.readu8(b, 0) .
- buffer.readbits(b, 0, 16) es equivalente a buffer.readu16(b, 0) .
- buffer.readbits(b, 0, 32) es equivalente a buffer.readu32(b, 0) .
- buffer.readbits(b, 0, 24) lee 24 bits del buffer.
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
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
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
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
Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .
Recuento de bits enteros para escribir. Se lanza un error si este valor no está dentro del rango de 0 a 32, incluido.
Número de 32 bits sin firmar. Solo se escriben los bits menos significativos bitCount.
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
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
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
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
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
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
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
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
Búfer para copiar datos en.
Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .
Búfer para tomar los datos de.
Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .
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.
Desplazamiento desde el comienzo de la memoria de búfer, comenzando por 0 .
Un número entero en el rango [0, 255].
Número de bytes para escribir. Si se omiten, todos los bytes después del desplazamiento especificado se establecer.