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 de tamanho fixo e manipulável. A biblioteca de buffer fornece funções para a criação e manipulação de objetos de buffer, fornecendo todas as suas funções dentro da variável global buffer.

O buffer foi projetado para 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 gravação de formatos binários existentes, trabalhando com dados em uma forma mais compacta, serialização para formatos binários personalizados e geralmente trabalhando com tipos de memória nativos

Quando passado através das APIs do Roblox, incluindo enviar um buffer através de eventos personalizados, a identificação 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 scripts (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 bloco de memória acessa o primeiro bytes. Todos os deslocamentos, contagens e tamanhos devem ser números inteiros negativos. Se os bytes que são acessados por qualquer operação de leitura ou gravação estiverem fora da memória do buffer, um erro é exibido.

Os métodos read e write que trabalham com inteiros e flutuais usam pequeno-endian codificação.

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 maior tamanhos podem falhar para alocar se o dispositivo estiver baixo de 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 corresponde à longura 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

readi8

Lê os dados do buffer ao reinterpretar os bytes na posição como um número assinado de 8 bits e convertê-lo em um número.

Parâmetros

offset: number

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

Devolução

readu8

Lê os dados do buffer ao reinterpretar os bytes no espaço como um número de 8 bits assinado e convertê-lo em um número.

Parâmetros

offset: number

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

Devolução

readi16

Lê os dados do buffer ao reinterpretar os bytes no espaço como um número assinado de 16 bits e convertê-lo em um número.

Parâmetros

offset: number

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

Devolução

readu16

Lê os dados do buffer ao reinterpretar os bytes no espaço como um número de 16 bits de inteiro assinado e convertê-lo em um número.

Parâmetros

offset: number

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

Devolução

readi32

Lê os dados do buffer ao reinterpretar os bytes no espaço como um número assinado em 32 bits e convertê-lo em um número.

Parâmetros

offset: number

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

Devolução

readu32

Lê os dados do buffer ao reinterpretar os bytes no espaço como um número de 32 bits assinado e convertê-lo em um número.

Parâmetros

offset: number

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

Devolução

readf32

Lê os dados do buffer ao reinterpretar os bytes na posição de deslocamento como um valor de ponto flutuante de 32 bits e convertê-lo em um número. Se o valor de ponto flutuante corresponder a qualquer padrão de bit que representa NaN (não é um número), o valor retornado pode ser convertido para uma representação de ponto flutuante diferente.

Parâmetros

offset: number

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

Devolução

readf64

Lê os dados do buffer ao reinterpretar os bytes na posição de deslocamento como um valor de ponto flutuante de 64 bits e convertê-lo em um número. Se o valor de ponto flutuante corresponder a qualquer padrão de bit que representa NaN (não é um número), o valor retornado pode ser convertido para uma representação de ponto flutuante diferente.

Parâmetros

offset: number

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

Devolução

writei8

void

Escreve dados no buffer ao converter o número em um inteiro assinado de 8 bits e escrever um único bytes.

Parâmetros

offset: number

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

value: number

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

Devolução

void

writeu8

void

Escreve dados no buffer ao converter o número em um número assinado de 8 bits e escrever um único bytes.

Parâmetros

offset: number

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

value: number

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

Devolução

void

writei16

void

Escreve dados no buffer ao converter o número em um número assinado de 16-bits e reinterpretá-lo como um conjunto individual de bytes.

Parâmetros

offset: number

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

value: number

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

Devolução

void

writeu16

void

Escreve dados no buffer ao converter o número em um número inteiro de 16 bits e reinterpretá-lo como um conjunto individual de bytes.

Parâmetros

offset: number

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

value: number

Um número inteiro em alcance [0, 65,536].

Devolução

void

writei32

void

Escreve dados no buffer ao converter o número em um número assinado de 32-bits e reinterpretá-lo como um conjunto individual de bytes.

Parâmetros

offset: number

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

value: number

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

Devolução

void

writeu32

void

Escreve dados no buffer ao converter o número em um número inteiro assinado em 32-bit e reinterpretá-lo como um conjunto de bytes individuais.

Parâmetros

offset: number

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

value: number

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

Devolução

void

writef32

void

Escreve dados no buffer ao converter o número em um valor de ponto flutuante de 32 bits e reinterpretá-lo como um único bit.

Parâmetros

offset: number

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

value: number

Um único ponto flutuante de precisão.

Devolução

void

writef64

void

Escreve dados no buffer ao converter o número em um valor de ponto flutuante de 64 bits e reinterpretá-lo como um único bytes.

Parâmetros

offset: number

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

value: number

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

Devolução

void

readstring

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

Parâmetros

offset: number

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

count: number

Comprimento para ler.

Devolução

writestring

void

Escreve dados de uma string para o buffer em offset. Se um opcional count for especificado, apenas count bytes são tomados da string / cadeia / texto.

Parâmetros

offset: number

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

value: string

Dados para escrever.

count: number

Número de bytes para levar da string / cadeia / texto. Este valor não pode ser maior que a long度 da string.

Devolução

void

copy

void

Copia count bytes de original começando em OFFSET sourceOffset para o 1> target1> em OFFSET 4> sourceOffset4>.

É possível que source e target sejam a mesma coisa. Copiar uma região sobreposição dentro do mesmo buffer atua como se a região de origem estivesse copiada para um buffer temporário e depois esse buffer é copiado para o alvo.

Parâmetros

target: buffer

Puffer para copiar dados para dentro.

targetOffset: number

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

source: buffer

Buffer para levar os dados de volta.

sourceOffset: number

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

Valor Padrão: 0
count: number

Número de bytes para copiar. Se omitido, todo o source começando por sourceOffset é tomado.

Devolução

void

fill

void

Define count bytes no buffer começando no offset especificado para value.

Parâmetros

Puffer para escrever os dados.

offset: number

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

value: number

Um número inteiro em 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

void