buffer

Pokaż przestarzałe

*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

Funkcje

create

Tworzy bufor o żądanym rozmiarze z wszystkimi bajtami zainicjowanymi do 0.Ograniczenie rozmiaru wynosi 1 GiB lub 1,073,741,824 bajtów.Pamiętaj, że większe buforery mogą nie zostać przydzielone, jeśli urządzenie ma niski poziom pamięci.

Parametry

size: number

Rozmiar bufora.

Zwroty

fromstring

Tworzy bufor zainicjowany do zawartości ciąg. Rozmiar bufora równa się długości ciąg.

Parametry

str: string

Zwroty

tostring

Zwraca dane buforowe jako ciąg znaków.

Parametry

Zwroty

Zwraca rozmiar bufora w bajtach.

Parametry

Zwroty

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:

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

bitOffset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

bitCount: number

Liczba bitów całkowita do przeczytane. Błąd jest rzucany, jeśli ta wartość nie jest w zasięgu 0 do 32, włącznie.

Zwroty

readi8

Czyta dane z bufora ponownie interpretując bajty na offsetie jako 8-bitowy podpisany całkowity i przekształcając go w liczbę.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

Zwroty

readu8

Czyta dane z bufora ponownie interpretując bajty na offset jako 8-bitowy niepodpisany liczebnik i przekształcając go w liczbę.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

Zwroty

readi16

Czyta dane z bufora ponownie interpretując bajty na offsetie jako 16-bitowy podpisany całkowity i przekształcając go w liczbę.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

Zwroty

readu16

Czyta dane z bufora ponownie interpretując bajty na offsetie jako 16-bitowy niepodpisany liczebnik i przekształcając go w liczbę.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

Zwroty

readi32

Czyta dane z bufora ponownie interpretując bajty na offset jako 32-bitowy podpisany całkowity i przekształcając go w liczbę.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

Zwroty

readu32

Czyta dane z bufora ponownie interpretując bajty na offsetie jako 32-bitowy niepodpisany całkowity i przekształcając go w liczbę.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

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.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

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.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

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

bitOffset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

bitCount: number

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.

value: number

Niepodpisany 32-bitowy numer. Napisane są tylko bitCount najmniej znaczące bity.

Zwroty

()

writei8

()

Zapisuje dane do buforu, konwersując liczbę na 8-bitowy podpisany całkowitą i zapisując pojedynczy bajt.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

value: number

Całkowita liczba w przedziale [-128, 127].

Zwroty

()

writeu8

()

Zapisuje dane do buforu, konwersując liczbę na 8-bitową niepodpisaną liczbę i zapisując pojedynczy bajt.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

value: number

Całkowita liczba w przedziale [0, 255].

Zwroty

()

writei16

()

Pisze dane do buforu, konwersując liczbę na 16-bitowy podpisany całkowitą i ponownie interpretując ją jako pojedyncze bajty.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

value: number

Całkowita liczba w przedziale [-32,768, 32,767].

Zwroty

()

writeu16

()

Pisze dane do buforu, konwersując liczbę na 16-bitową nieopisaną liczbę i ponownie interpretując ją jako pojedyncze bajty.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

value: number

Całkowita liczba w przedziale [0, 65,535].

Zwroty

()

writei32

()

Pisze dane do buforu, konwersując liczbę na 32-bitowy podpisany całkowitą i ponownie interpretując ją jako pojedyncze bajty.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

value: number

Całkowita liczba w przedziale [-2,147,483,648, 2,147,483,647].

Zwroty

()

writeu32

()

Pisze dane do buforu, konwertując liczbę na 32-bitową niepodpisaną liczbę i ponownie interpretując ją jako pojedyncze bajty.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

value: number

Całkowita liczba w przedziale [0, 4,294,967,295].

Zwroty

()

writef32

()

Pisze dane do buforu, konwersując liczbę na wartość 32-bitową zmienną pływającą i ponownie interpretując ją jako pojedyncze bajty.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

value: number

Liczba pływająca o jednej precyzji.

Zwroty

()

writef64

()

Pisze dane do buforu, konwersując liczbę na wartość 64-bitową zmienną pływającą i ponownie interpretując ją jako pojedyncze bajty.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

value: number

Podwójna precyzja liczba pływająca w punktach.

Zwroty

()

readstring

Czyta ciąg o długości count z bufora na określonym offset.

Parametry

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

count: number

Długość do przeczytane.

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

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

value: string

Dane do zapisania.

count: number

Liczba bajtów, które należy wziąć z ciągu. Ta wartość nie może być większa niż długość ciągu.

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

target: buffer

Puffer do kopiowania danych.

targetOffset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

source: buffer

Puffer, aby pobrać dane.

sourceOffset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

Wartość domyślna: 0
count: number

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.

Parametry

Pamięć buforowa do zapisania danych.

offset: number

Odległość od początku pamięci buforowej, zaczynając od 0 .

value: number

Całkowita liczba w przedziale [0, 255].

count: number

Liczba bajtów do zapisania. Jeśli zostanie pominięta, wszystkie bajty po określonym przesunięciu są ustawiać.

Zwroty

()