buffer
*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
Crea una buffer.
Crea un buffer da una Stringa.
Converte un buffer in una Stringa.
Restituisce la dimensione del buffer in bytes.
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.
Legge un intero firmato a 8 bit dal buffer.
Legge un intero non firmato a 8 bit dal buffer.
Legge un intero firmato a 16 bit dal buffer.
Legge un intero non firmato a 16 bit dal buffer.
Legge un intero firmato a 32 bit dal buffer.
Legge un intero non firmato a 32 bit dal buffer.
Legge un valore a 32 bit di punto fluttuante dal buffer.
Legge un valore a 64 bit di punto fluttuante dal buffer.
Scrive dati nel buffer in base a un intero specifico bitCount da 0 a 32, inclusivo.
Scrive un intero firmato a 8 bit nel buffer.
Scrive un intero a 8 bit non firmato nel buffer.
Scrive un intero firmato a 16 bit nel buffer.
Scrive un intero a 16 bit non firmato nel buffer.
Scrive un intero firmato a 32 bit nel buffer.
Scrive un intero a 32 bit non firmato nel buffer.
Scrive un valore a 32 bit di punto fluttuante nel buffer.
Scrive un valore a 64 bit di punto fluttuante nel buffer.
Legge una stringa dal buffer.
Scrive una stringa nel buffer.
Copia i bytes tra i buffer.
Imposta una regione della memoria buffer a un valore di intero non firmato di 8 bit.
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
Dimensione del buffer.
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:
- 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) legge 24 bit dal buffer.
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
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.
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.
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
Spostamento dall'inizio della memoria buffer, a partire da 0 .
Conteggio bit intero da scrivere. Viene lanciato un errore se questo valore non è a portata di 0 a 32, inclusivo.
Numero a 32 bit non firmato. Sono scritti solo bitCount i bit meno significativi.
Restituzioni
writei32
Scrive i dati nel buffer convertendo il numero in un intero firmato a 32 bit e rielaborandolo come singoli byte.
Parametri
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
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
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
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
buffer per copiare i dati.
Spostamento dall'inizio della memoria buffer, a partire da 0 .
buffer per prendere i dati da.
Spostamento dall'inizio della memoria buffer, a partire da 0 .
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 .