MemoryStoreHashMapPages

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

无法创建
未复制

一个特殊类型的 Pages 对象,其页面包含来自 MemoryStoreHashMap 的键值对。Pages:GetCurrentPage() 可用于检索一个阵列的表,每个包含一个键和值;这些反映了键-值对数据。

代码示例

下面的代码列出了记忆存储哈希地图中的所有项目。

在 MemoryStore 哈希地图中列出项目

local MemoryStoreService = game:GetService("MemoryStoreService")
local testHashMap = MemoryStoreService:GetHashMap("HashMap1")
local EXPIRATION = 600
local NUM_TEST_ITEMS = 32
local function populateHashMap(hashMap: MemoryStoreHashMap, numItems: number): { [string]: any }
print("Setting HashMap data...")
local createdItems = {}
for index = 1, numItems do
local key = tostring(index) -- 映射键必须是字符串
local value = `{key}_test_value`
local success, result = pcall(hashMap.SetAsync, hashMap, key, value, EXPIRATION)
if success then
createdItems[key] = value
else
warn(`Error setting key {key}: {result}`)
end
end
print("Done setting HashMap data.")
return createdItems
end
local function getItemsFromAllPages(pages: MemoryStoreHashMapPages): { [string]: any }
-- 纯粹用于记录目的,我们跟踪我们在哪个页面上
local currentPageNumber = 1
local retrievedItems = {}
while not pages.IsFinished do
print(`Getting items on page {currentPageNumber}...`)
local items = pages:GetCurrentPage()
for _, entry in pairs(items) do
print(`\t{entry.key}: {entry.value}`)
retrievedItems[entry.key] = entry.value
end
-- 如果有更多需要阅读的页面,请提前页面
if not pages.IsFinished then
pages:AdvanceToNextPageAsync()
currentPageNumber += 1
end
end
print("Finished reading all pages")
return retrievedItems
end
local function compareAllItems(retrievedItems: { [string]: any }, expectedItems: { [string]: any }): number
print("Comparing retrieved items to expected items...")
local numMatchingItems = 0
for key, expectedValue in pairs(expectedItems) do
if retrievedItems[key] == expectedValue then
numMatchingItems += 1
else
warn(`Mismatched retrieved value for key {key}: expected {expectedValue}, retrieved {retrievedItems[key]}`)
end
end
print("Comparison complete!")
return numMatchingItems
end
-- 添加到哈希地图的键也被添加到这个期望的物品表中。
-- 之后,回收的哈希地图项目将与预期的项目表进行比较。
local expectedItems = populateHashMap(testHashMap, NUM_TEST_ITEMS)
-- 获取页面可能会出错。在这种情况下,我们会让它出错并停止程序执行,
-- 但你可能想要 pcall 它并以不同的方式处理它。
print(`Getting HashMap pages with ListItemsAsync...`)
local pages = testHashMap:ListItemsAsync(NUM_TEST_ITEMS)
local retrievedItems = getItemsFromAllPages(pages)
local numMatchingItems = compareAllItems(retrievedItems, expectedItems)
-- 如果没有错误设置或获取物品,所有物品都应匹配。
print(`Program complete. {numMatchingItems}/{NUM_TEST_ITEMS} retrieved items matched the expected values.`)

概要

属性

继承自Pages属性
  • 只读
    未复制
    读取并联

    当前页是否为可用的最后一页。

方法

继承自Pages方法

属性

方法

活动