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 fisso modificabile 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, che sostituisce l'uso di string.pack() e string.unpack().Gli scenari di utilizzo includono la lettura e la scrittura di formati binari esistenti, il lavoro con i dati in una forma più compatta, la serializzazione a formati binari personalizzati e il lavoro generale con tipi di memoria nativi come interi a lunghezza fissa e virgole fluttuanti.

Quando viene passato attraverso le API di Roblox, incluso 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ù script Actor paralleli (Parallel Luau).

Molte delle funzioni accettano un offset in bytes dall'inizio del buffer.Lo spostamento di 0 dall'inizio del blocco di memoria buffer accede al primo byte.Tutti gli offset, i conti e le dimensioni devono essere numeri interi non negativi.Se i bytes a cui si accede con qualsiasi operazione di lettura o scrittura sono al di fuori della memoria buffer, viene generato un errore.

I metodi read e write che lavorano con interi e float utilizzano l'encoder poco endiano.

Sommario

Funzioni

Funzioni

create

Crea un buffer della dimensione richiesta con tutti i bytes inizializzati a 0 .Il limite di dimensione è 1 GiB, o 1,073,741,824 byte.Tieni presente che i buffer più grandi potrebbero non riuscire ad assegnare se il dispositivo sta esaurendo la memoria.

Parametri

size: number

Dimensione del buffer.

Restituzioni

fromstring

Crea un buffer inizializzato al contenuto della Stringa. La dimensione del buffer è uguale 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

readbits

Legge una gamma di bit in un intero non firmato da un buffer in base a un intero specifico bitCount da 0 a 32, inclusivo.Ad esempio:

Si noti che la larghezza bit 0 è supportata solo per non commettere errori nei casi generalizzati in cui il conteggio dei bit è dinamico e la lettura di 0 bit restituisce 0 .Si noti inoltre che, poiché la dimensione massima del buffer è di 1 GB, bitOffset non può essere gestita come un numero intero a 32 bit come offset di byte in altre funzioni buffer.

Parametri

bitOffset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

bitCount: number

Conteggio bit intero da leggere. Viene lanciato un errore se questo valore non è a portata di 0 a 32, inclusivo.

Restituzioni

readi8

Legge i dati dal buffer reinterpretando i bytes all'offset come un intero firmato a 8 bit e convertendolo in un numero.

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

Restituzioni

readu8

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

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

Restituzioni

readi16

Legge i dati dal buffer reinterpretando i bytes all'offset come un intero firmato a 16 bit e convertendolo in un numero.

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

Restituzioni

readu16

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

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

Restituzioni

readi32

Legge i dati dal buffer reinterpretando i bytes nell'offset come un intero firmato a 32 bit e convertendolo in un numero.

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

Restituzioni

readu32

Legge i dati dal buffer reinterpretando i bytes nell'offset come un intero a 32 bit non firmato e convertendolo in un numero.

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

Restituzioni

readf32

Legge i dati dal buffer reinterpretando i bytes all'offset come un valore di punto fluttuante a 32 bit e convertendolo in un numero.Se il valore del punto fluttuante corrisponde a qualsiasi modello bit che rappresenta NaN (non un numero), il valore restituito può essere convertito in una diversa rappresentazione tranquilla NaN.

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

Restituzioni

readf64

Legge i dati dal buffer reinterpretando i bytes all'offset come un valore di punto fluttuante a 64 bit e convertendolo in un numero.Se il valore del punto fluttuante corrisponde a qualsiasi modello bit che rappresenta NaN (non un numero), il valore restituito può essere convertito in una diversa rappresentazione tranquilla NaN.

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

Restituzioni

writebits

()

Scrive dati nel buffer in base a un intero specifico bitCount da 0 a 32, inclusivo.value viene trattato come un numero a 32 bit non firmato e solo i bit meno importanti bitCount vengono scritti.

Si noti che la larghezza bit 0 è supportata solo per non commettere errori nei casi generalizzati in cui il conteggio dei bit è dinamico e la scrittura di 0 bit non ha alcun effetto.Si noti inoltre che, poiché la dimensione massima del buffer è di 1 GB, bitOffset non può essere gestita come un numero intero a 32 bit come offset di byte in altre funzioni buffer.

Parametri

bitOffset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

bitCount: number

Conteggio bit intero da scrivere. Viene lanciato un errore se questo valore non è a portata di 0 a 32, inclusivo.

value: number

Numero a 32 bit non firmato. Sono scritti solo bitCount i bit meno significativi.

Restituzioni

()

writei8

()

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

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

value: number

Un numero intero a portata [-128, 127].

Restituzioni

()

writeu8

()

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

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

value: number

Un numero intero a portata [0, 255].

Restituzioni

()

writei16

()

Scrive i dati nel buffer convertendo il numero in un intero firmato a 16 bit e rielaborandolo come singoli byte.

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

value: number

Un numero intero a portata [-32,768, 32,767].

Restituzioni

()

writeu16

()

Scrive i dati nel buffer convertendo il numero in un intero non firmato a 16 bit e rielaborandolo come singoli byte.

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

value: number

Un numero intero a portata [0, 65,535].

Restituzioni

()

writei32

()

Scrive i dati nel buffer convertendo il numero in un intero firmato a 32 bit e rielaborandolo come singoli byte.

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

value: number

Un numero intero a portata [-2,147,483,648, 2,147,483,647].

Restituzioni

()

writeu32

()

Scrive i dati nel buffer convertendo il numero in un intero a 32 bit non firmato e rielaborandolo come singoli byte.

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

value: number

Un numero intero a portata [0, 4,294,967,295].

Restituzioni

()

writef32

()

Scrive i dati nel buffer convertendo il numero in un valore di virgola galleggiante a 32 bit e rielaborandolo come singoli bit.

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

value: number

Un numero a virgola singola di precisione galleggiante.

Restituzioni

()

writef64

()

Scrive i dati nel buffer convertendo il numero in un valore di virgola galleggiante a 64 bit e rielaborandolo come singoli byte.

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

value: number

Un numero a virgola mobile di precisione doppia.

Restituzioni

()

readstring

Legge una sequenza di lunghezza count dalla buffer specificata in offset.

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

count: number

Lunghezza da leggere.

Restituzioni

writestring

()

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

Parametri

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

value: string

Dati da scrivere.

count: number

Numero di byte da prendere dalla Stringa. Questo valore non può essere superiore alla lunghezza della stringa.

Restituzioni

()

copy

()

Copia count bytes da source a partire dall'offset sourceOffset in target a targetOffset .

È possibile che source e target siano gli stessi.Copiare una regione sovrapposta all'interno dello stesso buffer funziona come se la regione di origine venga copiata in un buffer temporaneo e poi quel buffer venga copiato sul bersaglio.

Parametri

target: buffer

buffer per copiare i dati.

targetOffset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

source: buffer

buffer per prendere i dati da.

sourceOffset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

Valore predefinito: 0
count: number

Numero di bytes da copiare. Se omesso, vengono prese tutte le source dati a partire da sourceOffset .

Restituzioni

()

fill

()

Imposta count bytes nel buffer a partire dall' specificato offset a value .

Parametri

buffer per scrivere i dati dentro.

offset: number

Spostamento dall'inizio della memoria buffer, a partire da 0 .

value: number

Un numero intero a portata [0, 255].

count: number

Numero di byte da scrivere. Se omesso, tutti i byte dopo lo spostamento specificato vengono Impostare.

Restituzioni

()