緩存是一個代表固定大小可變更的記憶區塊的對象。緩沖庫提供創建和操作緩沖對象的功能,並提供所有功能在全球變量 buffer 內。
緩存的目的是用於低等級的二進制資料存儲結構,取代 string.pack() 和 string.unpack() 的使用。使用案例包括閱讀和寫入現有的二進制格式、以更緊湊的形式工作與數據,將二進制格式轉換為特定的二進制格式,以及與固定長度的整數和浮點等原生記憶類型的一般工作。
當通過 Roblox API 傳送時,包括通過自訂事件發送緩沖對象的身份,緩沖對象的身份不會被保留,目標將收到一個副本。與其他限制類似,同一個緩存對象無法從多個 Actor 腳本中使用(並行 Luau)。
許多功能從開始時接受從緩存開始的字元偏移。從緩存記憶塊開始的 0 偏移存取第一個字元。所有偏移、計數和尺寸應為非負整數。如果使用任何讀取或寫入操作存取的字元超出緩存記憶,錯誤將被投擲。
使用整數和浮點的 read 和 write 方法使用 小端量 編碼。
概要
函式
創建緩存。
從字串中創建緩存。
將緩存轉換為字串。
返回緩存的大小以字元。
閱讀一系列位元到未簽名整數,從緩存中基於特定的 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 。請注意,由於緩衝區的最大尺寸為 1GB,bitOffset無法像其他緩衝區功能的字元偏移數據一樣處理32位整數。
返回
writebits
根據特定的 bitCount 整數從 0 到 32 寫入數據到緩存,包括在內。value 被視為未簽名的 32 位數字,只有 bitCount 最小值位元被寫入。
請注意,0 位元寬度只能在動態位數計數的一般情況下支持,寫入 0 位元沒有作用。請注意,由於緩衝區的最大尺寸為 1GB,bitOffset無法像其他緩衝區功能的字元偏移數據一樣處理32位整數。