buffer

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

緩存是一個代表固定大小可變更的記憶區塊的對象。緩沖庫提供創建和操作緩沖對象的功能,並提供所有功能在全球變量 buffer 內。

緩存的目的是用於低等級的二進制資料存儲結構,取代 string.pack()string.unpack() 的使用。使用案例包括閱讀和寫入現有的二進制格式、以更緊湊的形式工作與數據,將二進制格式轉換為特定的二進制格式,以及與固定長度的整數和浮點等原生記憶類型的一般工作。

當通過 Roblox API 傳送時,包括通過自訂事件發送緩沖對象的身份,緩沖對象的身份不會被保留,目標將收到一個副本。與其他限制類似,同一個緩存對象無法從多個 Actor 腳本中使用(並行 Luau)。

許多功能從開始時接受從緩存開始的字元偏移。從緩存記憶塊開始的 0 偏移存取第一個字元。所有偏移、計數和尺寸應為非負整數。如果使用任何讀取或寫入操作存取的字元超出緩存記憶,錯誤將被投擲。

使用整數和浮點的 readwrite 方法使用 小端量 編碼。

概要

函式

函式

create

創建一個要求尺寸的緩存,所有字元都被初始化為 0 。大小限制為 1 GiB,或 1,073,741,824 位元。請注意,大型緩存可能無法分配,如果裝置的記憶體不足。

參數

size: number

緩存的大小。

返回

fromstring

創建一個初始化到字串內容的緩存。緩存的大小等於字串的長度。

參數

str: string

返回

tostring

將緩存資料返回為字串。

參數

返回

返回緩存的大小以字元。

參數

返回

readbits

閱讀一系列位元到未簽名整數,從緩存中基於特定的 bitCount 整數從 032 ,包括在內。例如:

請注意, 0 位元寬度只在動態計數的一般情況下支持不發生錯誤,閱讀 0 位元返回 0 。請注意,由於緩衝區的最大尺寸為 1GB,bitOffset無法像其他緩衝區功能的字元偏移數據一樣處理32位整數。

參數

bitOffset: number

從缓冲存储開始,從 0 開始抵消。

bitCount: number

整數位元數量要已讀。如果這個值不在 032 範圍內,錯誤將被投擲。

返回

readi8

重新解釋偏移處的字元以 8 位已簽名整數來從緩存中閱讀數據,並將其轉換為數字。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

返回

readu8

重新解釋偏移處的字元以 8 位未簽名整數來從緩存中閱讀數據,並將其轉換為數字。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

返回

readi16

重新解釋偏移處的字元以 16 位已簽名整數的形式來從緩存中閱讀數據,並將其轉換為數字。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

返回

readu16

重新解釋偏移處的字元以 16 位未簽名整數來從緩存中閱讀數據,並將其轉換為數字。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

返回

readi32

重新解釋偏移處的字元以 32 位已簽名整數來從緩存中閱讀數據,並將其轉換為數字。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

返回

readu32

重新解釋偏移處的字元以 32 位未簽名整數來從緩存中閱讀數據,並將其轉換為數字。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

返回

readf32

重新解釋偏移處的字元以 32 位浮點值來從緩存中閱讀數據,並將其轉換為數字。如果浮點值與任何代表 NaN (不是數字) 的位元模式匹配,返回的值可能會轉換為不同的靜態 NaN 表示。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

返回

readf64

重新解釋偏移處的字元以 64 位浮點值來從緩存中閱讀數據,並將其轉換為數字。如果浮點值與任何代表 NaN (不是數字) 的位元模式匹配,返回的值可能會轉換為不同的靜態 NaN 表示。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

返回

writebits

()

根據特定的 bitCount 整數從 032 寫入數據到緩存,包括在內。value 被視為未簽名的 32 位數字,只有 bitCount 最小值位元被寫入。

請注意,0 位元寬度只能在動態位數計數的一般情況下支持,寫入 0 位元沒有作用。請注意,由於緩衝區的最大尺寸為 1GB,bitOffset無法像其他緩衝區功能的字元偏移數據一樣處理32位整數。

參數

bitOffset: number

從缓冲存储開始,從 0 開始抵消。

bitCount: number

整數位元數量要寫入。如果這個值不在 032 範圍內,錯誤將被投擲。

value: number

未簽名的 32 位數字。只有 bitCount 最小重要位元被寫入。

返回

()

writei8

()

將數據寫入緩存,將數字轉換為 8 位簽名整數,並寫一個單字節。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

value: number

範圍[-128, 127]的整數。

返回

()

writeu8

()

將數據寫入緩存,將數字轉換為 8 位未命名整數,並寫入單一位元。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

value: number

範圍內的整數 [0、255]。

返回

()

writei16

()

將數據寫入緩存,將數字轉換為 16 位簽名整數,然後重新解釋為個別的字元。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

value: number

範圍[-32,768, 32,767]的整數。

返回

()

writeu16

()

將數據寫入緩存,將數字轉換為 16 位未命名整數,然後重新解釋為個別字元。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

value: number

範圍內的整數 [0、65、535]。

返回

()

writei32

()

將數據寫入緩存,將數字轉換為 32 位簽名整數,然後重新解釋為個別的字元。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

value: number

範圍[-2,147,483,648,2,147,483,647]中的整數。

返回

()

writeu32

()

將數據寫入緩存,將數字轉換為 32 位未簽名整數,然後重新解釋為個別的字元。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

value: number

範圍內的整數 [0、4、294、967、295]。

返回

()

writef32

()

將數據寫入緩存,將數字轉換為 32 位浮點值,然後重新解釋為個別字元。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

value: number

單精度浮點數字。

返回

()

writef64

()

將數據寫入緩存,將數字轉換為 64 位浮點值,然後重新解釋為個別字元。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

value: number

雙精度浮點數字。

返回

()

readstring

從指定的 offset 位置讀取長度為 count 的字串。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

count: number

要已讀取的長度。

返回

writestring

()

從字串寫入指定的 offset 到緩存中的數據。如果指定了可選的 count,只有 count 位元從字串中被取出。

參數

offset: number

從缓冲存储開始,從 0 開始抵消。

value: string

要寫的資料。

count: number

從字串中取得的字元數量。此值不得大於字串長度。

返回

()

copy

()

從 起,從偏移 開始複製 位元到 。

sourcetarget可能是相同的。複製同一緩存內的重疊區域,作為如果來源區域被複製到暫時緩存,然後該緩存被複製到目標的情況。

參數

target: buffer

用於複製數據的緩存。

targetOffset: number

從缓冲存储開始,從 0 開始抵消。

source: buffer

緩沖以從數據中取得。

sourceOffset: number

從缓冲存储開始,從 0 開始抵消。

預設值:0
count: number

要複製的字元數量。如果省略,將從 source 開始的整個 sourceOffset 資料將被取得。

返回

()

fill

()

count 位元設置在緩存中,從指定的 offsetvalue 開始。

參數

用來寫入資料的緩存。

offset: number

從缓冲存储開始,從 0 開始抵消。

value: number

範圍內的整數 [0、255]。

count: number

要寫入的字元數量。如果沒有指定,則指定偏移後的所有字元都會被設定。

返回

()