buffer
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Pamięć buforowa to obiekt, który reprezentuje stałą rozmiarową zmienną blok pamięci.Biblioteka buforów zapewnia funkcje do tworzenia i manipulacji obiektami buforowymi, zapewniając wszystkie swoje funkcje wewnątrz globalnej zmiennej buffer.
Pamięć buforowa ma być używana jako struktura przechowywania danych binarnych na poziomie niskim, zastępująca użycia string.pack() i string.unpack().Przypadki użycia obejmują czytanie i pisanie istniejących formatów binarnych, pracę z danymi w bardziej kompaktowej formie, serjalizację do niestandardowych formatów binarnych i ogólną pracę z rodzajami pamięci natywnych, takimi jak stałej długości liczby i pływki.
Gdy przechodzi przez interfejsy API Roblox, w tym wysyłanie bufora za pośrednictwem niestandardowych wydarzeń, tożsamość obiektu bufora nie jest zachowana, a cel otrzyma kopię.Podobnie jak w przypadku innych ograniczeń, ten sam obiekt bufora nie może być używany z wielu Actor.
Wiele funkcji akceptuje odległość w bajtach od początku bufora.Odległość 0 od początku bloku pamięci buforowej dostępuje pierwszy bajt.Wszystkie odliczenia, liczby i rozmiary powinny być liczbami całkowitymi nieujemnymi.Jeśli bajty, do których uzyskiwany jest dostęp za pomocą dowolnej operacji odczytu lub zapisu, są poza pamięcią buforową, wystąpi błąd.
Metody read i write pracujące z liczbami całkowitymi i pływami używają kodowania mało-końcowego.
Podsumowanie
Funkcje
Tworzy bufor.
Tworzy bufor z ciągu.
Konwertuje bufor do ciąg.
Zwraca rozmiar bufora w bajtach.
Czyta zakres bajtów do niepodpisanego liczby w pamięci bufora na podstawie określonego bitCount liczby od 0 do 32, włącznie.
Czyta 8-bitowy podpisany całkowitą liczbę z bufora.
Czyta 8-bitową niepodpisaną liczbę całkowitą z buforu.
Czyta 16-bitowy podpisany całkowity z pamięci buforowej.
Czyta 16-bitową niepodpisaną liczbę z buforu.
Czyta 32-bitowy podpisany całkowity z pamięci buforowej.
Czyta 32-bitową niepodpisaną liczbę z buforu.
Czyta 32-bitową wartość zmiennej pływającej z pamięci buforowej.
Czyta 64-bitową wartość zmiennej pływającej z pamięci buforowej.
Pisze dane do buforu na podstawie określonego bitCount od 0 do 32, włącznie.
Pisze 8-bitowy podpisany całkowity do buforu.
Pisze 8-bitową niepodpisaną liczbę całkowitą do buforu.
Pisze 16-bitowy podpisany całkowity do buforu.
Pisze 16-bitową niepodpisaną liczbę całkowitą do buforu.
Pisze 32-bitowy podpisany całkowity do buforu.
Pisze 32-bitową niepodpisaną liczbę całkowitą do buforu.
Wpisuje 32-bitową wartość zmienną pływającą do buforu.
Pisze 64-bitową wartość zmienną pływającą do buforu.
Czyta ciąg z bufora.
Pisze ciąg do buforu.
Kopiuje bajty między buforami.
Ustawia region pamięci buforowej na pewną 8-bitową niewykrywalną wartość całkowitą.
Funkcje
readbits
Czyta zakres bajtów do niepodpisanego liczby w pamięci bufora na podstawie określonego bitCount liczby od 0 do 32, włącznie.Na przykład:
- buffer.readbits(b, 0, 8) jest równoznaczny z buffer.readu8(b, 0).
- buffer.readbits(b, 0, 16) jest równoznaczny z buffer.readu16(b, 0).
- buffer.readbits(b, 0, 32) jest równoznaczny z buffer.readu32(b, 0).
- buffer.readbits(b, 0, 24) odczytuje 24 bity z buforu.
Zauważ, że szerokość 0 bitów jest wspierana tylko w celu uniknięcia błędu w ogólnych przypadkach, gdzie liczba bitów jest dynamiczna, a odczytanie 0 bitów zwraca 0 .Zauważ też, że ponieważ maksymalny rozmiar bufora wynosi 1 GB, bitOffset nie może być obsługiwany jako 32-bitowa liczba całkowita, tak jak offset bajtu w innych funkcjach bufora.
Parametry
Zwroty
readf32
Czyta dane z bufora ponownie interpretując bajty na offsetie jako 32-bitową wartość zmiennej pływającej i przekształcając ją w liczbę.Jeśli wartość zmiennoprzecinkowa pasuje do jakichkolwiek wzorców bitów, które reprezentują NaN (nie jest to liczba), wartość zwrócona może zostać przekształcona na inną spokojną reprezentację NaN.
Zwroty
readf64
Czyta dane z bufora ponownie interpretując bajty na offsetie jako 64-bitową wartość zmiennej pływającej i przekształcając ją w liczbę.Jeśli wartość zmiennoprzecinkowa pasuje do jakichkolwiek wzorców bitów, które reprezentują NaN (nie jest to liczba), wartość zwrócona może zostać przekształcona na inną spokojną reprezentację NaN.
Zwroty
writebits
Pisze dane do buforu na podstawie określonego bitCount od 0 do 32, włącznie.value jest traktowany jako niepodpisany 32-bitowy numer i zapisywane są tylko bitCount najmniej znaczące bity.
Zauważ, że szerokość 0 bitów jest wspierana tylko w celu uniknięcia błędu w ogólnych przypadkach, w których liczba bitów jest dynamiczna, a pisanie 0 bitów nie ma żadnego wpływu.Zauważ też, że ponieważ maksymalny rozmiar bufora wynosi 1 GB, bitOffset nie może być obsługiwany jako 32-bitowa liczba całkowita, tak jak offset bajtu w innych funkcjach bufora.
Parametry
Odległość od początku pamięci buforowej, zaczynając od 0 .
Liczba bitów całkowita do zapisania. Błąd jest rzucany, jeśli ta wartość nie jest w zasięgu 0 do 32, włącznie.
Niepodpisany 32-bitowy numer. Napisane są tylko bitCount najmniej znaczące bity.
Zwroty
writei32
Pisze dane do buforu, konwersując liczbę na 32-bitowy podpisany całkowitą i ponownie interpretując ją jako pojedyncze bajty.
Parametry
Zwroty
writestring
Pisze dane z ciągu do buforu na określonym offset .Jeśli opcjonalny count jest określony, tylko count bajtów jest pobieranych z ciągu.
Parametry
Zwroty
copy
Kopiuje count bajty z source począwszy od offsetu sourceOffset do target w targetOffset .
Możliwe jest, aby source i target były takie same.Kopiowanie pokrywającego się regionu wewnątrz tego samego buforu działa tak, jak gdyby region źródłowy został skopiowany do tymczasowego buforu, a następnie ten bufor został skopiowany na cel.
Parametry
Puffer do kopiowania danych.
Odległość od początku pamięci buforowej, zaczynając od 0 .
Puffer, aby pobrać dane.
Odległość od początku pamięci buforowej, zaczynając od 0 .
Liczba bajtów do skopiowania. Jeśli zostanie pominięta, cała source dane rozpoczynające się od sourceOffset są pobierane.
Zwroty
fill
Ustawia count bajty w buforze rozpoczynającym się od określonego offset do value.