buffer

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Buffering adalah objek yang mewakili blok memori berukuran tetap yang dapat diubah.Perpustakaan buffer menyediakan fungsi untuk pembuatan dan manipulasi objek buffer, menyediakan semua fungsinya di dalam variabel global buffer.

Buffer dimaksudkan untuk digunakan sebagai struktur penyimpanan data binari tingkat rendah, menggantikan penggunaan string.pack() dan string.unpack().Kasus penggunaan termasuk membaca dan menulis format biner yang ada, bekerja dengan data dalam bentuk yang lebih kompak, serialisasi ke format biner khusus, dan pekerjaan umum dengan jenis memori asli seperti bilangan bulat tetap dan float.

Saat dilewati melalui API Roblox, termasuk mengirim buffer melalui acara khusus, identitas objek buffer tidak dipertahankan dan target akan menerima salinan.Mirip dengan batasan lain, objek buffer yang sama tidak dapat digunakan dari banyak Actor skrip (Parallel Luau).

Banyak fungsi menerima offset dalam bayt dari awal buffer.Offset dari 0 dari awal akses memori buffer membuka byte pertama.Semua offset, hitungan, dan ukuran harus menjadi angka bilangan bulat positif.Jika bayi yang diakses oleh operasi baca atau tulis apa pun berada di luar memori buffer, kesalahan terjadi.

Metode read dan write yang bekerja dengan bilangan bulat dan float menggunakan enkode sedikit-endian.

Rangkuman

Fungsi

Fungsi

create

Membuat buffer ukuran yang diminta dengan semua bayangan diinisialisasi ke 0 .Batas ukuran adalah 1 GiB, atau 1,073,741,824 bayt.Ingatlah bahwa buffer yang lebih besar mungkin gagal diberikan jika perangkat kehabisan memori.

Parameter

size: number

Ukuran buffer.

Memberikan nilai

fromstring

Membuat buffer yang diinisialisasi ke konten string. Ukuran buffer sama dengan panjang string.

Parameter

str: string

Memberikan nilai

tostring

Mengembalikan data buffer sebagai string.

Parameter

Memberikan nilai

Kembalikan ukuran buffer dalam bayt.

Parameter

Memberikan nilai

readbits

Membaca berbagai bit menjadi bilangan tak berurutan dari buffer berdasarkan bilangan tak berurutan khusus bitCount dari 0 hingga 32, termasuk.Sebagai contoh:

Perhatikan bahwa lebar bit 0 hanya didukung untuk tidak kesalahan dalam kasus umum di mana hitungan bit dinamis, dan membaca 0 bit kembali 0 .Perhatikan juga bahwa, karena ukuran maksimum buffer adalah 1 GB, bitOffset tidak dapat ditangani sebagai angka bilangan 32-bit seperti offset byte dalam fungsi buffer lainnya.

Parameter

bitOffset: number

Offset dari awal memori buffer, mulai dari 0 .

bitCount: number

Hitungan bit bilangan bulat untuk dilihat. Kesalahan terjadi jika nilai ini tidak berada dalam rentang 0 hingga 32, termasuk.

Memberikan nilai

readi8

Membaca data dari buffer dengan mengulangi byte di offset sebagai bilangan berteks 8-bit dan mengubahnya menjadi angka.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

Memberikan nilai

readu8

Membaca data dari buffer dengan mengulangi bit pada offset sebagai bilangan 8-bit tanpa tanda tangan dan mengubahnya menjadi angka.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

Memberikan nilai

readi16

Membaca data dari buffer dengan mengulangi byte di offset sebagai bilangan berteks 16-bit dan mengubahnya menjadi angka.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

Memberikan nilai

readu16

Membaca data dari buffer dengan mengulangi byte di offset sebagai bilangan 16-bit tanpa tanda tangan dan mengubahnya menjadi angka.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

Memberikan nilai

readi32

Membaca data dari buffer dengan menginterpretasikan ulang bit di offset sebagai bilangan berteks 32-bit dan mengubahnya menjadi angka.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

Memberikan nilai

readu32

Membaca data dari buffer dengan mengulangi byte di offset sebagai bilangan 32-bit tanpa tanda tangan dan mengubahnya menjadi angka.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

Memberikan nilai

readf32

Membaca data dari buffer dengan meng-interpretasi ulang byte di offset sebagai nilai float 32-bit dan mengubahnya menjadi angkaJika nilai titik apung sesuai dengan pola bit apa pun yang mewakili NaN (bukan angka), nilai yang dikembalikan dapat dikonversi ke representasi diam yang berbeda NaN.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

Memberikan nilai

readf64

Membaca data dari buffer dengan meng-interpretasi ulang byte di offset sebagai nilai float 64-bit dan mengubahnya menjadi angkaJika nilai titik apung sesuai dengan pola bit apa pun yang mewakili NaN (bukan angka), nilai yang dikembalikan dapat dikonversi ke representasi diam yang berbeda NaN.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

Memberikan nilai

writebits

()

Menulis data ke buffer berdasarkan angka bulat tertentu bitCount dari 0 hingga 32, termasuk. value diperlakukan sebagai angka 32-bit tanpa tanda tangan dan hanya bitCount bit paling signifikan yang ditulis.

Perhatikan bahwa lebar bit 0 hanya didukung untuk tidak salah dalam kasus umum di mana hitungan bit dinamis, dan menulis 0 bit tidak berpengaruh.Perhatikan juga bahwa, karena ukuran maksimum buffer adalah 1 GB, bitOffset tidak dapat ditangani sebagai angka bilangan 32-bit seperti offset byte dalam fungsi buffer lainnya.

Parameter

bitOffset: number

Offset dari awal memori buffer, mulai dari 0 .

bitCount: number

Hitungan bit bilangan bulat untuk ditulis. Kesalahan terjadi jika nilai ini tidak berada dalam rentang 0 hingga 32, termasuk.

value: number

Angka 32-bit tidak ditandatangani. Hanya bitCount bit paling signifikan yang ditulis.

Memberikan nilai

()

writei8

()

Menulis data ke buffer dengan mengubah nomor menjadi bilangan berisi 8 bit yang ditandatangani dan menulis satu byte.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

value: number

Angka bulat dalam rentang [-128, 127].

Memberikan nilai

()

writeu8

()

Menulis data ke buffer dengan mengubah nomor menjadi bilangan 8-bit tanpa tanda tangan dan menulis satu byte.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

value: number

Angka bulat dalam rentang [0, 255].

Memberikan nilai

()

writei16

()

Menulis data ke buffer dengan mengubah nomor menjadi bilangan berteks 16-bit yang ditandatangani dan menginterpretasinya kembali sebagai bilangan individ.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

value: number

Angka bulat dalam rentang [-32,768, 32,767].

Memberikan nilai

()

writeu16

()

Menulis data ke buffer dengan mengubah nomor menjadi bilangan tak berteks 16-bit dan menginterpretasinya kembali sebagai bilangan individ.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

value: number

Angka bulat dalam rentang [0, 65,535].

Memberikan nilai

()

writei32

()

Menulis data ke buffer dengan mengubah nomor menjadi bilangan berteks 32-bit yang ditandatangani dan menginterpretasinya kembali sebagai bilangan individ.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

value: number

Angka bulat dalam rentang [-2,147,483,648, 2,147,483,647].

Memberikan nilai

()

writeu32

()

Menulis data ke buffer dengan mengubah nomor menjadi bilangan biner 32-bit tanpa tanda tangan dan menginterpretasinya kembali sebagai bilangan individu.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

value: number

Angka bulat dalam rentang [0, 4,294,967,295].

Memberikan nilai

()

writef32

()

Menulis data ke buffer dengan mengubah nomor menjadi nilai float 32-bit dan menginterpretasinya kembali sebagai bilah individual.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

value: number

Angka titik mengambang presisi tunggal.

Memberikan nilai

()

writef64

()

Menulis data ke buffer dengan mengubah nomor menjadi nilai float 64-bit dan menginterpretasinya kembali sebagai bilah individual.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

value: number

Angka titik mengambang presisi ganda.

Memberikan nilai

()

readstring

Membaca string panjang count dari buffer pada offset yang ditentukan.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

count: number

Panjang untuk dilihat.

Memberikan nilai

writestring

()

Menulis data dari string ke buffer pada offset yang ditentukan.Jika opsi count opsional ditentukan, hanya count byte yang diambil dari string.

Parameter

offset: number

Offset dari awal memori buffer, mulai dari 0 .

value: string

Data untuk ditulis.

count: number

Jumlah bayt yang harus diambil dari string. Nilai ini tidak boleh lebih besar dari panjang string.

Memberikan nilai

()

copy

()

Salin count bytes dari source mulai dari offset sourceOffset ke dalam target pada targetOffset .

Mungkin bagi source dan target untuk menjadi sama.Menyalin wilayah tumpangan di dalam buffer yang sama bertindak seolah-olah wilayah sumber dicopy ke buffer sementara dan kemudian buffer itu dicopy ke target.

Parameter

target: buffer

Buffer untuk menyalin data ke dalam.

targetOffset: number

Offset dari awal memori buffer, mulai dari 0 .

source: buffer

Buffer untuk mengambil data dari.

sourceOffset: number

Offset dari awal memori buffer, mulai dari 0 .

Nilai Default: 0
count: number

Jumlah bayt untuk disalin. Jika diabaikan, seluruh data source dimulai dari sourceOffset diambil.

Memberikan nilai

()

fill

()

Mengatur count bytes di buffer mulai dari yang ditentukan offset sampai value .

Parameter

Buffer untuk menulis data ke dalam.

offset: number

Offset dari awal memori buffer, mulai dari 0 .

value: number

Angka bulat dalam rentang [0, 255].

count: number

Jumlah bayi untuk ditulis. Jika diabaikan, semua bayi setelah offset yang ditentukan diatur.

Memberikan nilai

()