buffer
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
บัฟเป็นวัตถุที่แทนที่บล็อกหน่วยความจำแบบคงที่ที่มีขนาดคงที่ได้คลังบัฟให้ฟังก์ชันสำหรับการสร้างและการจัดการวัตถุบัฟ โดยให้ฟังก์ชันทั้งหมดภายในตัวแปร global buffer
บัฟมีจุดมุ่งหมายเพื่อใช้เป็นโครงสร้างการจัดเก็บข้อมูลไบนารีระดับต่ำ เพื่อแทนที่การใช้งานของ string.pack() และ string.unpack()กรณีการใช้งานรวมถึงการอ่านและเขียนรูปแบบไบนารีที่มีอยู่แล้วการทำงานกับข้อมูลในรูปแบบที่กะทัดรัดมากขึ้นการเขียนรูปแบบไบนารีที่กําหนดเองและทั่วไปกับประเภทหน่วยความจําเดิมเช่นตัวเลขความยาวคงที่และลอยตัว
เมื่อผ่าน API Roblox รวมถึงการส่งบัฟผ่านเหตุการณ์ที่กําหนดเอง, ตัวตนของวัตถุบัฟจะไม่ถูกเก็บไว้และเป้าหมายจะได้รับสําเนาคล้ายกับข้อจํากัดอื่น ๆ วัตถุบัฟเดียวกันไม่สามารถใช้จากสคริปต์หลาย Actor ได้ (Parallel Luau)
หลายฟังก์ชันยอมรับการเลื่อนออฟเซ็ตในไบต์ตั้งแต่ต้นของบัฟการเลื่อนของ 0 จากจุดเริ่มต้นของบล็อกหน่วยความจำบัฟเข้าถึงไบต์แรกการชดเชยทั้งหมด การนับ และขนาดทั้งหมดควรเป็นตัวเลขเต็มลบศูนย์หากไบต์ที่เข้าถึงโดยการดำเนินการอ่านหรือเขียนใดๆ อยู่นอกบัฟเฟอร์หน่วยความจำ จะเกิดข้อผิดพลาด
วิธี read และ write ที่ทำงานกับจํานวนเต็มและลอยตัวใช้การเข้ารหัส little-endian
สรุป
ฟังก์ชัน
สร้างบัฟเฟอร์
สร้างบัฟจากสตริง
แปลงบัฟเป็นสตริง
restores ขนาดของบัฟเฟอร์ในไบต์
อ่านช่วงบิตหลายอย่างเป็นจํานวนเต็มที่ไม่ลงนามจากบัฟตามจํานวนเต็ม bitCount จาก 0 ถึง 32 รวมถึง
อ่านจํานวนเต็มลงนาม 8 บิตจากบัฟ
อ่านตัวเลขไม่ลงนาม 8 บิตจากบัฟเฟอร์
อ่านตัวเลขลายลาย 16 บิตจากบัฟเฟอร์
อ่านตัวเลขไม่ลงนาม 16 บิตจากบัฟเฟอร์
อ่านจํานวนเต็มลงนาม 32 บิตจากบัฟ
อ่านตัวเลขไม่ลงนาม 32 บิตจากบัฟเฟอร์
อ่านค่าจุดทศนิยมลอยตัว 32 บิตจากบัฟเฟอร์
อ่านค่าจุดทศนิยมลอยตัว 64 บิตจากบัฟเฟอร์
เขียนข้อมูลลงในบัฟตามตัวเลขที่เฉพาะ bitCount จาก 0 ถึง 32 รวมถึง
เขียนจํานวนเต็มลงนาม 8 บิตไปยังบัฟ
เขียนตัวเลขไม่ลงนาม 8 บิตไปยังบัฟ
เขียนตัวเลขลายลาย 16 บิตไปยังบัฟเฟอร์
เขียนตัวเลขไม่ลงนาม 16 บิตไปยังบัฟ
เขียนตัวเลขลบลาย 32 บิตไปยังบัฟ
เขียนตัวเลขไม่ลงนาม 32 บิตไปยังบัฟ
เขียนค่าลอยตัว 32 บิตไปยังบัฟเฟอร์
เขียนค่าลอยตัว 64 บิตไปยังบัฟเฟอร์
อ่านสตริงจากบัฟเฟอร์
เขียนสตริงไปยังบัฟเฟอร์
คัดลอกไบต์ระหว่างบัฟเฟอร์
ตั้งค่าภูมิภาคของหน่วยความจำบัฟเป็นค่าตัวเลขลบล้าง 8 บิตบางส่วน
ฟังก์ชัน
readbits
อ่านช่วงบิตหลายอย่างเป็นจํานวนเต็มที่ไม่ลงนามจากบัฟตามจํานวนเต็ม bitCount จาก 0 ถึง 32 รวมถึงตัวอย่าง:
- buffer.readbits(b, 0, 8) เทียบเท่ากับ buffer.readu8(b, 0) .
- buffer.readbits(b, 0, 16) เทียบเท่ากับ buffer.readu16(b, 0) .
- buffer.readbits(b, 0, 32) เทียบเท่ากับ buffer.readu32(b, 0) .
- buffer.readbits(b, 0, 24) อ่าน 24 บิตจากบัฟเฟอร์
โปรดทราบว่าความกว้างบิต 0 ไม่สนับสนุนในกรณีทั่วไปที่จํานวนบิตเป็นไดนามิกและการอ่าน 0 บิตจะส่งคืน 0โปรดทราบว่า เนื่องจากขนาดสูงสุดของบัฟคือ 1 GB แล้ว bitOffset ไม่สามารถจัดการได้เป็นจํานวนเต็ม 32 บิตเช่นการเลื่อนออฟเซ็ตไบต์ในฟังก์ชันบัฟอื่น
พารามิเตอร์
ส่งค่ากลับ
readf32
อ่านข้อมูลจากบัฟโดยแปลงไบต์ที่อยู่ในตําแหน่งเป็นค่าลอยตัว 32 บิตและแปลงเป็นตัวเลขหากค่าจุลภาคที่ลอยอยู่ตรงกับรูปแบบบิตใดก็ได้ที่แทนที่ NaN (ไม่ใช่ตัวเลข) ค่าที่คืนอาจถูกแปลงเป็นการแสดงอันเงียบอื่น ๆ NaN
ส่งค่ากลับ
readf64
อ่านข้อมูลจากบัฟโดยแปลงไบต์ที่อยู่ในตําแหน่งเป็นค่าลอยตัว 64 บิตและแปลงเป็นตัวเลขหากค่าจุลภาคที่ลอยอยู่ตรงกับรูปแบบบิตใดก็ได้ที่แทนที่ NaN (ไม่ใช่ตัวเลข) ค่าที่คืนอาจถูกแปลงเป็นการแสดงอันเงียบอื่น ๆ NaN
ส่งค่ากลับ
writebits
เขียนข้อมูลลงในบัฟตามตัวเลขที่เฉพาะ bitCount จาก 0 ถึง 32 รวมถึงvalue จะถูกปฏิบัติเป็นหมายเลข 32 บิตที่ไม่ลงนามและมีเพียง bitCount บิตที่มีความสำคัญน้อยที่สุดถูกเขียน
โปรดทราบว่าความกว้างบิต 0 ไม่สนับสนุนในกรณีทั่วไปที่จํานวนบิตเป็นไดนามิกและการเขียน 0 บิตไม่มีผลโปรดทราบว่า เนื่องจากขนาดสูงสุดของบัฟคือ 1 GB แล้ว bitOffset ไม่สามารถจัดการได้เป็นจํานวนเต็ม 32 บิตเช่นการเลื่อนออฟเซ็ตไบต์ในฟังก์ชันบัฟอื่น
พารามิเตอร์
ส่งค่ากลับ
writestring
เขียนข้อมูลจากสตริงเป็นบัฟที่กำหนดไว้ offsetหากระบุตัวเลือก count ไว้ จะใช้ไบต์เพียง count จากสตริงเท่านั้น
พารามิเตอร์
ส่งค่ากลับ
copy
สำเนา count ไบต์จาก source เริ่มต้นที่ออฟเซ็ต sourceOffset ใน target ที่ targetOffset
เป็นไปได้สำหรับ source และ target ที่จะเป็นเหมือนกันการคัดลอกภูมิภาคซ้อนทับภายในบัฟเดียวกันจะทำหน้าที่เหมือนกับว่าภูมิภาคที่เป็นที่มาถูกคัดลอกไปยังบัฟชั่วคราวแล้วบัฟนั้นถูกคัดลอกไปยังเป้าหมาย
พารามิเตอร์
บัฟเพื่อคัดลอกข้อมูล
ค่าเอฟเฟกต์จากจุดเริ่มต้นของหน่วยความจําบัฟ เริ่มจาก 0
บัฟเพื่อรับข้อมูล
ค่าเอฟเฟกต์จากจุดเริ่มต้นของหน่วยความจําบัฟ เริ่มจาก 0
จํานวนไบต์ที่จะคัดลอก หากถูกข้ามทั้งหมดข้อมูล source จาก sourceOffset จะถูกนํามา
ส่งค่ากลับ
fill
ตั้งค่า count ไบต์ในบัฟเริ่มต้นที่ offset ไปยัง value