buffer
*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
Membuat buffer.
Membuat buffer dari string.
Mengubah buffer menjadi string.
Kembalikan ukuran buffer dalam bayt.
Membaca berbagai bit menjadi bilangan tak berurutan dari buffer berdasarkan bilangan tak berurutan khusus bitCount dari 0 hingga 32, termasuk.
Membaca bilangan berisi 8 bit yang ditandatangani dari buffer.
Membaca integral 8-bit tanpa tanda tangan dari buffer.
Membaca bilangan berisi 16 bit yang ditandatangani dari buffer.
Membaca bilangan tak berteks 16-bit dari buffer.
Membaca bilangan berisi tanda tangan 32-bit dari buffer.
Membaca bilangan bulat 32-bit tanpa tanda tangan dari buffer.
Membaca nilai titik apung 32-bit dari buffer.
Membaca nilai titik apung 64-bit dari buffer.
Menulis data ke buffer berdasarkan angka bulat tertentu bitCount dari 0 hingga 32, termasuk.
Menulis bilangan berisi 8 bit yang ditandatangani ke buffer.
Menulis bilangan biner 8-bit tanpa tanda tangan ke buffer.
Menulis bilangan berisi 16 bit yang ditandatangani ke buffer.
Menulis bilangan tak berteks 16-bit ke buffer.
Menulis bilangan berisi tanda tangan 32-bit ke buffer.
Menulis bilangan bulat 32-bit tanpa tanda tangan ke buffer.
Menulis nilai titik apung 32-bit ke buffer.
Menulis nilai titik apung 64-bit ke buffer.
Membaca string dari buffer.
Menulis string ke buffer.
Membuat salinan byte di antara buffer.
Mengatur bagian memori buffer ke beberapa nilai integral 8-bit tanpa tanda tangan.
Fungsi
readbits
Membaca berbagai bit menjadi bilangan tak berurutan dari buffer berdasarkan bilangan tak berurutan khusus bitCount dari 0 hingga 32, termasuk.Sebagai contoh:
- buffer.readbits(b, 0, 8) adalah sama dengan buffer.readu8(b, 0) .
- buffer.readbits(b, 0, 16) adalah sama dengan buffer.readu16(b, 0) .
- buffer.readbits(b, 0, 32) adalah sama dengan buffer.readu32(b, 0) .
- buffer.readbits(b, 0, 24) membaca 24 bit dari buffer.
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
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.
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.
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
Offset dari awal memori buffer, mulai dari 0 .
Hitungan bit bilangan bulat untuk ditulis. Kesalahan terjadi jika nilai ini tidak berada dalam rentang 0 hingga 32, termasuk.
Angka 32-bit tidak ditandatangani. Hanya bitCount bit paling signifikan yang ditulis.
Memberikan nilai
writei16
Menulis data ke buffer dengan mengubah nomor menjadi bilangan berteks 16-bit yang ditandatangani dan menginterpretasinya kembali sebagai bilangan individ.
Parameter
Memberikan nilai
writei32
Menulis data ke buffer dengan mengubah nomor menjadi bilangan berteks 32-bit yang ditandatangani dan menginterpretasinya kembali sebagai bilangan individ.
Parameter
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
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
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
Buffer untuk menyalin data ke dalam.
Offset dari awal memori buffer, mulai dari 0 .
Buffer untuk mengambil data dari.
Offset dari awal memori buffer, mulai dari 0 .
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 .