buffer
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Um buffer é um objeto que representa um bloco de memória fixo e mutável.A biblioteca de buffer fornece funções para criação e manipulação de objetos de buffer, fornecendo todas as suas funções dentro da variável global buffer.
O buffer tem a intenção de ser usado como uma estrutura de armazenamento de dados binários de baixo nível, substituindo os usos de string.pack() e string.unpack().Os casos de uso incluem a leitura e a escrita de formatos binários existentes, o trabalho com dados em uma forma mais compacta, a serialização para formatos binários personalizados e o trabalho geral com tipos de memória nativos, como inteiros de comprimento fixo e flutos.
Ao passar pelas APIs do Roblox, incluindo o envio de um buffer através de eventos personalizados, a identidade do objeto de buffer não é preservada e o alvo receberá uma cópia.Semelhante a outras limitações, o mesmo objeto de buffer não pode ser usado de vários Actor (Parallel Luau).
Muitas das funções aceitam um deslocamento em bytes a partir do início do buffer.O deslocamento de 0 a partir do início do acesso à memória de buffer acesse o primeiro byte.Todos os deslocamentos, contagens e tamanhos devem ser números inteiros não negativos.Se os bytes que são acessados por qualquer operação de leitura ou gravação estiverem fora da memória de buffer, um erro é lançado.
Os métodos read e write que trabalham com inteiros e flutos usam o pequeno-endiano encriptamento.
Resumo
Funções
Cria um buffer.
Cria um buffer a partir de uma string / cadeia / texto.
Converte um buffer para uma string / cadeia / texto.
Retorna o tamanho do buffer em bytes.
Lê uma gama de bits em um inteiro não assinado a partir do buffer com base em um inteiro específico bitCount de 0 a 32, incluindo.
Lê um inteiro assinado de 8 bits do buffer.
Lê um inteiro de 8 bits não assinado do buffer.
Lê um inteiro assinado de 16 bits do buffer.
Lê um inteiro de 16 bits não assinado do buffer.
Lê um inteiro assinado de 32 bits do buffer.
Lê um inteiro não assinado de 32 bits do buffer.
Lê um valor de ponto flutuante de 32 bits do buffer.
Lê um valor de ponto flutuante de 64 bits do buffer.
Escreve dados no buffer com base em um inteiro específico bitCount de 0 a 32, inclusive.
Escreve um inteiro assinado de 8 bits para o buffer.
Escreve um inteiro de 8 bits não assinado no buffer.
Escreve um inteiro assinado de 16 bits para o buffer.
Escreve um inteiro de 16 bits não assinado no buffer.
Escreve um inteiro assinado de 32 bits para o buffer.
Escreve um inteiro não assinado de 32 bits para o buffer.
Escreve um valor de ponto flutuante de 32 bits para o buffer.
Escreve um valor de ponto flutuante de 64 bits para o buffer.
Lê uma string do buffer.
Escreve uma string no buffer.
Copia bytes entre buffers.
Define uma região da memória de buffer para algum valor de inteiro não assinado de 8 bits.
Funções
create
Cria um buffer do tamanho solicitado com todos os bytes inicializados para 0 .O limite de tamanho é 1 GiB, ou 1,073,741,824 bytes.Tenha em mente que os buffers maiores podem falhar em alocar se o dispositivo estiver com pouca memória.
Parâmetros
Tamanho do buffer.
Devolução
readbits
Lê uma gama de bits em um inteiro não assinado a partir do buffer com base em um inteiro específico bitCount de 0 a 32, incluindo.Por exemplo:
- buffer.readbits(b, 0, 8) é equivalente a buffer.readu8(b, 0) .
- buffer.readbits(b, 0, 16) é equivalente a buffer.readu16(b, 0) .
- buffer.readbits(b, 0, 32) é equivalente a buffer.readu32(b, 0) .
- buffer.readbits(b, 0, 24) lê 24 bits do buffer.
Observe que a largura de 0 bits é suportada apenas para não errar em casos gerais onde o número de bits é dinâmico e a leitura de 0 bits retorna 0.Observe também que, uma vez que o tamanho máximo do buffer é de 1 GB, bitOffset não pode ser tratado como um número inteiro de 32 bits como o deslocamento de bytes em outras funções de buffer.
Parâmetros
Devolução
readf32
Lê os dados do buffer reinterpretando bytes no deslocamento como um valor de ponto flutuante de 32 bits e convertendo-o em um número.Se o valor do ponto flutuante corresponder a qualquer padrão de bit que represente (não um número), o valor retornado pode ser convertido para uma representação silenciosa diferente.
Parâmetros
Devolução
readf64
Lê os dados do buffer reinterpretando bytes no deslocamento como um valor de ponto flutuante de 64 bits e convertendo-o em um número.Se o valor do ponto flutuante corresponder a qualquer padrão de bit que represente (não um número), o valor retornado pode ser convertido para uma representação silenciosa diferente.
Parâmetros
Devolução
writebits
Escreve dados no buffer com base em um inteiro específico bitCount de 0 a 32, inclusive.value é tratado como um número de 32 bits não assinado e apenas bitCount os bits menos significativos são escritos.
Observe que a largura de 0 bits é suportada apenas para não errar em casos gerais onde o número de bits é dinâmico e escrever 0 bits não tem efeito.Observe também que, uma vez que o tamanho máximo do buffer é de 1 GB, bitOffset não pode ser tratado como um número inteiro de 32 bits como o deslocamento de bytes em outras funções de buffer.
Parâmetros
Deslocamento a partir do início da memória de buffer, começando por 0 .
Contagem de bits inteiros para escrever. O erro é arremessado se este valor não estiver dentro do alcance de 0 a 32, incluindo.
Número de 32 bits não assinado. Apenas bitCount os bits menos significativos são escritos.
Devolução
writei16
Escreve dados no buffer convertendo o número em um inteiro assinado de 16 bits e reinterpretando-o como bytes individuais.
Parâmetros
Devolução
writeu16
Escreve dados no buffer convertendo o número em um inteiro de 16 bits não assinado e reinterpretando-o como bytes individuais.
Parâmetros
Devolução
writei32
Escreve dados no buffer convertendo o número em um inteiro assinado de 32 bits e reinterpretando-o como bytes individuais.
Parâmetros
Devolução
writeu32
Escreve dados no buffer convertendo o número em um inteiro não assinado de 32 bits e reinterpretando-o como bytes individuais.
Parâmetros
Devolução
writef32
Escreve dados no buffer convertendo o número em um valor de ponto flutuante de 32 bits e reinterpretando-o como bytes individuais.
Parâmetros
Devolução
writef64
Escreve dados no buffer convertendo o número em um valor de ponto flutuante de 64 bits e reinterpretando-o como bytes individuais.
Parâmetros
Devolução
writestring
Escreve dados de uma string no buffer no especificado offset .Se um opcional count for especificado, apenas count bytes são retirados da string / cadeia / texto.
Parâmetros
Devolução
copy
Cópias count bytes a partir de source começando no offset sourceOffset até o target na targetOffset .
É possível que source e target sejam os mesmos.Copiar uma região sobreposta dentro do mesmo buffer atua como se a região de origem fosse copiada para um buffer temporário e, em seguida, esse buffer seja copiado para o alvo.
Parâmetros
Buffer para copiar dados para dentro.
Deslocamento a partir do início da memória de buffer, começando por 0 .
Buffer para tomar os dados de.
Deslocamento a partir do início da memória de buffer, começando por 0 .
Número de bytes para copiar. Se omitido, todos os dados source começando por sourceOffset são tomados.
Devolução
fill
Define count bytes no buffer começando no especificado offset até value.