buffer

Mostrar obsoleto

*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

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

size: number

Tamanho do buffer.

Devolução

fromstring

Cria um buffer inicializado para o conteúdo da string / cadeia / texto. O tamanho do buffer é igual à comprimento da string / cadeia / texto.

Parâmetros

str: string

Devolução

tostring

Retorna os dados do buffer como uma string / cadeia / texto.

Parâmetros

Devolução

Retorna o tamanho do buffer em bytes.

Parâmetros

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:

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

bitOffset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

bitCount: number

Contagem de bits inteiros para ler. Erro é arremessado se este valor não estiver dentro do alcance de 0 a 32, incluindo.

Devolução

readi8

Lê os dados do buffer reinterpretando os bytes no deslocamento como um inteiro assinado de 8 bits e convertendo-os em um número.

Parâmetros

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

Devolução

readu8

Lê os dados do buffer reinterpretando os bytes no deslocamento como um inteiro de 8 bits não assinado e convertendo-o em um número.

Parâmetros

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

Devolução

readi16

Lê os dados do buffer reinterpretando os bytes no deslocamento como um inteiro assinado de 16 bits e convertendo-os em um número.

Parâmetros

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

Devolução

readu16

Lê os dados do buffer reinterpretando os bytes no deslocamento como um inteiro de 16 bits não assinado e convertendo-o em um número.

Parâmetros

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

Devolução

readi32

Lê os dados do buffer reinterpretando os bytes no deslocamento como um inteiro assinado de 32 bits e convertendo-os em um número.

Parâmetros

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

Devolução

readu32

Lê os dados do buffer reinterpretando os bytes no deslocamento como um inteiro de 32 bits não assinado e convertendo-o em um número.

Parâmetros

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

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

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

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

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

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

bitOffset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

bitCount: number

Contagem de bits inteiros para escrever. O erro é arremessado se este valor não estiver dentro do alcance de 0 a 32, incluindo.

value: number

Número de 32 bits não assinado. Apenas bitCount os bits menos significativos são escritos.

Devolução

()

writei8

()

Escreve dados no buffer convertendo o número em um inteiro assinado de 8 bits e escrevendo um único byte.

Parâmetros

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

value: number

Um número inteiro dentro do alcance [-128, 127].

Devolução

()

writeu8

()

Escreve dados no buffer convertendo o número em um inteiro de 8 bits não assinado e escrevendo um único byte.

Parâmetros

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

value: number

Um número inteiro dentro do alcance [0, 255].

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

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

value: number

Um número inteiro dentro do alcance [-32,768, 32,767].

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

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

value: number

Um número inteiro dentro do alcance [0, 65,535].

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

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

value: number

Um número inteiro dentro do alcance [-2,147,483,648, 2,147,483,647].

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

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

value: number

Um número inteiro dentro do alcance [0, 4,294,967,295].

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

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

value: number

Um número de ponto flutuante de precisão única.

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

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

value: number

Um número de ponto flutuante de precisão dupla.

Devolução

()

readstring

Lê uma sequência de comprimento count a partir do buffer no especificado offset.

Parâmetros

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

count: number

Comprimento para ler.

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

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

value: string

Dados para escrever.

count: number

Número de bytes a serem retirados da string / cadeia / texto. Este valor não pode ser maior que o comprimento da string.

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

target: buffer

Buffer para copiar dados para dentro.

targetOffset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

source: buffer

Buffer para tomar os dados de.

sourceOffset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

Valor Padrão: 0
count: number

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.

Parâmetros

Buffer para escrever os dados.

offset: number

Deslocamento a partir do início da memória de buffer, começando por 0 .

value: number

Um número inteiro dentro do alcance [0, 255].

count: number

Número de bytes para escrever. Se omitido, todos os bytes após o espaço especificado são configurar.

Devolução

()