buffer

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Un buffer è un oggetto che rappresenta un blocco di memoria di dimensioni fisse. La libreria buffer fornisce funzioni per la creazione e la manipolazione di oggetti buffer, fornendo tutte le sue funzioni all'interno della variabile globale buffer .

Il buffer è destinato ad essere utilizzato come struttura di archiviazione dati binaria di basso livello, sostituendo l'uso di string.pack() e string.unpack() . I casi d'uso includono la lettura e la scrittura di formati binari esistenti, il lavoro con i dati in una forma più compatta e la serializzazione per i formati binari personalizzati e generali. I tipi di memoria nativa come i valori fissi e

Quando viene passato attraverso API Roblox, tra cui l'invio di un buffer attraverso eventi personalizzati, l'identità dell'oggetto buffer non viene preservata e il destinatario riceverà una copia. Come altre limitazioni, lo stesso oggetto buffer non può essere utilizzato da più Actor script (Parallel Luau).

Molte delle funzioni accettano un offset in bytes dall'inizio della memoria di avvio. L'offset di 0 dall'inizio della memoria di avvio accede al primo Byte. Tutti gli offset, conti e dimensioni devono essere numeri interi non negativi. Se i Byte che vengono acceduti da qualsiasi operazione di lettura o scrittura sono fuori dalla memoria di avvio, viene visualizzato un errore.

I metodi read e write che lavorano con interi e fluttua utilizzano poco-endian encodamento.

Sommario

Funzioni

Funzioni

create

Crea un buffer della dimensione richiesta con tutti i bit inizializzati a 0. Il limite di dimensioni è 1 GiB, o 1,073,741,824 bit. Tieni presente che più grandi buffer potrebbero non essere disponibili per l'allocazione se il dispositivo è in esecuzione a bassa memoria.

Parametri

size: number

Dimensione del buffer.

Restituzioni

fromstring

Crea un buffer inizializzato ai contenuti della Stringa. La dimensione del buffer corrisponde alla lunghezza della Stringa.

Parametri

str: string

Restituzioni

tostring

Restituisce i dati del buffer come una Stringa.

Parametri

Restituzioni

Restituisce la dimensione del buffer in bytes.

Parametri

Restituzioni

readi8

Legge i dati dal buffer reinterpretando i bit all'interno dell'offset come un intero int con firma 8-bit e convertendolo in un numero.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

Restituzioni

readu8

Legge i dati dal buffer reinterpretando i bit all'interno dell'offset come un intero numero non firmato e convertendolo in un numero.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

Restituzioni

readi16

Legge i dati dal buffer reinterpretando i bit all'interno dell'Offset come un intero int a 16 bit e convertendolo in un numero.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

Restituzioni

readu16

Legge i dati dal buffer reinterpretando i bit all'interno dell'Offset come un intero int 16-bit e convertendolo in un numero.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

Restituzioni

readi32

Legge i dati dal buffer reinterpretando i bit all'interno dell'Offset come un intero int 32-bit firmato e convertendolo in un numero.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

Restituzioni

readu32

Legge i dati dal buffer reinterpretando i bit all'interno dell' offset come un intero int 32-bit e convertendolo in un numero.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

Restituzioni

readf32

Legge i dati dal buffer reinterpretando i bit all'interno dell'offset come un valore float 32-bit e convertendolo in un numero. Se il valore float corrisponde a qualsiasi modello di bit che rappresenta NaN (non un numero), il valore restituito può essere convertito in una rappresentazione di tipo differente NaN .

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

Restituzioni

readf64

Legge i dati dal buffer reinterpretando i bit all'interno dell'offset come un valore float 64-bit e convertendolo in un numero. Se il valore float corrisponde a qualsiasi modello di bit che rappresenta NaN (non un numero), il valore restituito può essere convertito in una rappresentazione di tipo differente NaN .

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

Restituzioni

writei8

void

Scriva i dati nel buffer convertendo il numero in un intero numero firmato a 8 bit e scrivendo un singolo bit.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

value: number

Un numero intero in range [-128, 127].

Restituzioni

void

writeu8

void

Scriva i dati nel buffer convertendo il numero in un numero grezzo a 8 bit e scrivendo un singolo bit.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

value: number

Un numero intero in range [0, 255].

Restituzioni

void

writei16

void

Scriva i dati nel buffer convertendo il numero in un intero numero di 16 bit e reinterpretingolo come singoli bit.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

value: number

Un numero intero in range [-32,768, 32,767].

Restituzioni

void

writeu16

void

Scriva i dati nel buffer convertendo il numero in un numero intero non firmato in 16 bit e reinterpretandolo come singoli bit.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

value: number

Un numero intero in range [0, 65,536].

Restituzioni

void

writei32

void

Scriva i dati nel buffer convertendo il numero in un intero numero a 32 bit e reinterpretingolo come singoli bit.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

value: number

Un numero intero in range [-2,147,483,648, 2,147,483,647].

Restituzioni

void

writeu32

void

Scriva i dati nel buffer convertendo il numero in un numero intero non firmato in 32 bit e reinterpretandolo come singoli bit.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

value: number

Un numero intero in range [0, 4,294,967,295].

Restituzioni

void

writef32

void

Scriva i dati nel buffer convertendo il numero in un valore di punto fluttuante a 32 bit e reinterpretingolo come singoli bit.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

value: number

Un singolo punto fluttuante di precisione.

Restituzioni

void

writef64

void

Scriva i dati nel buffer convertendo il numero in un valore di punto fluttuante a 64 bit e reinterpretingolo come singoli bit.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

value: number

Un doppio punto fluttuante di precisione.

Restituzioni

void

readstring

Legge una stringa di lunghezza count dalla memoria al valore specificato offset .

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

count: number

Lunghezza da leggere.

Restituzioni

writestring

void

Scrive i dati da una stringa in un buffer all'indirizzo specificato offset . Se viene specificato un opzionale count, vengono prelevati solo count bytes dalla Stringa.

Parametri

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

value: string

Dati da scrivere.

count: number

Numero di pixel da prendere dalla Stringa. Questo valore non può essere più grande della lunghezza della stringa.

Restituzioni

void

copy

void

Copia count bytes from source starting at offset sourceOffset into the 1> target1> at 4> targetOffset4> .

È possibile che source e target siano uguali. La copia di una regione sovrapponente all'interno dello stesso buffer agisce come se la regione di origine fosse copiata in un buffer temporaneo e poi in un buffer viene copiata sull'obiettivo.

Parametri

target: buffer

Buffer per copiare i dati in.

targetOffset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

source: buffer

Buffer per prendere i dati.

sourceOffset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

Valore predefinito: 0
count: number

Numero di bytes da copiare. Se omesso, l'intera source data che inizia da sourceOffset viene presa.

Restituzioni

void

fill

void

Imposta count bytes nel buffer starting at the specified offset to value .

Parametri

Buffer per scrivere i dati in.

offset: number

Spostamento dall'inizio della memoria di buffer, inizializzando da 0.

value: number

Un numero intero in range [0, 255].

count: number

Numero di bytes per scrivere. Se omesso, tutti i bytes dopo l'offset specificato vengono Impostare.

Restituzioni

void