buffer
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Un tampon est un objet qui représente un bloc de mémoire de taille fixe modifiable.La bibliothèque tampon fournit des fonctions pour la création et la manipulation d'objets tampon, fournissant toutes ses fonctions à l'intérieur de la variable globale buffer.
Le tampon est destiné à être utilisé comme structure de stockage de données binaires de bas niveau, remplaçant l'utilisation de string.pack() et de string.unpack().Les cas d'utilisation incluent la lecture et l'écriture de formats binaires existants, le travail avec des données sous une forme plus compacte, la sérialisation vers des formats binaires personnalisés, et le travail général avec des types de mémoire natifs comme les entiers de longueur fixe et les flottes.
Lorsqu'il est transmis via les API de Roblox, y compris l'envoi d'un tampon via des événements personnalisés, l'identité de l'objet tampon n'est pas préservée et la cible recevra une copie.Semblable à d'autres limitations, le même objet tampon ne peut pas être utilisé à partir de plusieurs scripts Actor parallèles (Luau parallèle).
De nombreuses fonctions acceptent un décalage en octets dès le début du tampon.L'offset de 0 à partir du début de l'accès à la mémoire tampon permet d'accéder au premier octet.Tous les décalages, les comptages et les tailles devraient être des nombres entiers non négatifs.Si les octets auxquels une opération de lecture ou d'écriture a accès sont en dehors de la mémoire tampon, une erreur est échouée.
Les méthodes read et write qui fonctionnent avec des entiers et des flottants utilisent l'encodage peu endian.
Résumé
Fonctions
Crée un tampon.
Crée un tampon à partir d'une chaîne.
Convertit un tampon en chaîne.
Renvoie la taille du tampon en octets.
Lit une gamme de bits dans un entier non signé à partir du tampon en fonction d'un entier spécifique bitCount à partir de 0 à 32, y compris.
Lit un entier signé de 8 bits à partir du tampon.
Lit un entier non signé de 8 bits à partir du tampon.
Lit un entier signé de 16 bits à partir du tampon.
Lit un entier non signé de 16 bits à partir du tampon.
Lit un entier signé de 32 bits à partir du tampon.
Lit un entier non signé de 32 bits à partir du tampon.
Lit une valeur de point flottant de 32 bits à partir du tampon.
Lit une valeur de point flottant de 64 bits à partir du tampon.
Écrit des données dans le tampon en fonction d'un entier spécifique bitCount de 0 à 32, y compris.
Écrit un entier signé de 8 bits dans le tampon.
Écrit un entier non signé de 8 bits dans le tampon.
Écrit un entier signé de 16 bits dans le tampon.
Écrit un entier non signé de 16 bits dans le tampon.
Écrit un entier signé de 32 bits dans le tampon.
Écrit un entier non signé de 32 bits dans le tampon.
Écrit une valeur de point flottant de 32 bits dans le tampon.
Écrit une valeur de point flottant de 64 bits dans le tampon.
Lit une chaîne du tampon.
Écrit une chaîne dans le tampon.
Copie des octets entre les tampons.
Définit une région de la mémoire tampon en un nombre entier non signé de 8 bits.
Fonctions
create
Crée un tampon de la taille demandée avec tous les octets initialisés à 0 .La limite de taille est de 1 GiB, ou 1 073 741 824 octets.Gardez à l'esprit que les buffers plus grands peuvent échouer à s'allouer si l'appareil a peu de mémoire.
Paramètres
Taille du tampon.
Retours
readbits
Lit une gamme de bits dans un entier non signé à partir du tampon en fonction d'un entier spécifique bitCount à partir de 0 à 32, y compris.Par exemple :
- buffer.readbits(b, 0, 8) est équivalent à buffer.readu8(b, 0) .
- buffer.readbits(b, 0, 16) est équivalent à buffer.readu16(b, 0) .
- buffer.readbits(b, 0, 32) est équivalent à buffer.readu32(b, 0) .
- buffer.readbits(b, 0, 24) lit 24 bits du tampon.
Notez que la largeur de 0 bit est supportée uniquement pour ne pas échouer dans les cas généralisés où le nombre de bits est dynamique, et la lecture de 0 bits retourne 0 .Notez également que, puisque la taille maximale du tampon est de 1 Go, bitOffset ne peut pas être traité comme un nombre entier de 32 bits comme l'écartement de octet dans d'autres fonctions de tampon.
Paramètres
Retours
readf32
Lit les données du tampon en réinterprétant les octets à l'offset comme une valeur de point flottant de 32 bits et en la convertissant en un nombre.Si la valeur de point flottant correspond à n'importe quel modèle de bit qui représente NaN (pas un nombre), la valeur retournée peut être convertie en une représentation plus silencieuse NaN.
Retours
readf64
Lit les données du tampon en réinterprétant les octets à l'offset comme une valeur de point flottant de 64 bits et en la convertissant en un nombre.Si la valeur de point flottant correspond à n'importe quel modèle de bit qui représente NaN (pas un nombre), la valeur retournée peut être convertie en une représentation plus silencieuse NaN.
Retours
writebits
Écrit des données dans le tampon en fonction d'un entier spécifique bitCount de 0 à 32, y compris. est traité comme un nombre 32 bits non signé et seuls les bits les moins significatifs sont écrits.
Notez que la largeur de 0 bit n'est supportée que pour ne pas échouer dans les cas généralisés où le nombre de bits est dynamique, et l'écriture de 0 bits n'a aucun effet.Notez également que, puisque la taille maximale du tampon est de 1 Go, bitOffset ne peut pas être traité comme un nombre entier de 32 bits comme l'écartement de octet dans d'autres fonctions de tampon.
Paramètres
Décalage depuis le début de la mémoire tampon, à partir de 0 .
Compte de bits entiers à écrire. L'erreur est lancée si cette valeur n'est pas à portée de 0 à 32, inclusive.
Nombre 32 bits non signé. Seuls les bits les moins significatifs bitCount sont écrits.
Retours
writei16
Écrit des données dans le tampon en convertissant le nombre en un entier signé de 16 bits et en le réinterprétant comme des octets individuels.
Paramètres
Retours
writeu16
Écrit des données dans le tampon en convertissant le nombre en un entier non signé de 16 bits et en le réinterprétant comme des octets individuels.
Paramètres
Retours
writei32
Écrit des données dans le tampon en convertissant le nombre en un entier signé de 32 bits et en le réinterprétant comme des octets individuels.
Paramètres
Retours
writeu32
Écrit des données dans le tampon en convertissant le nombre en un entier non signé de 32 bits et en le réinterprétant comme des octets individuels.
Paramètres
Retours
writef32
Écrit des données dans le tampon en convertissant le nombre en une valeur de point flottant de 32 bits et en le réinterprétant comme des octets individuels.
Paramètres
Retours
writef64
Écrit des données dans le tampon en convertissant le nombre en une valeur de point flottant de 64 bits et en le réinterprétant comme des octets individuels.
Paramètres
Retours
writestring
Écrit des données d'une chaîne dans le tampon à l'emplacement spécifié offset.Si un optionnel count est spécifié, seuls count octets sont pris de la chaîne.
Paramètres
Retours
copy
Copie count octets à partir de source à partir de l'offset sourceOffset dans le target à targetOffset .
Il est possible que source et target soient identiques.Copier une région chevauchante à l'intérieur du même tampon agit comme si la région source était copiée dans un tampon temporaire, puis ce tampon est copié vers la cible.
Paramètres
Buffre pour copier les données.
Décalage depuis le début de la mémoire tampon, à partir de 0 .
Buffre pour prendre les données.
Décalage depuis le début de la mémoire tampon, à partir de 0 .
Nombre de octets à copier. S'il est omis, l'ensemble des données source commençant par sourceOffset est pris.
Retours
fill
Définit count octets dans le tampon à partir de l'espèce spécifiée offset à value .