MemoryStoreHashMapPages

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

No creable
No replicado

Un tipo especial de objeto Pages que sus páginas contienen pares de clave-valor de un MemoryStoreHashMap . Pages:GetCurrentPage() se puede usar para recuperar un conjunto de tablas, cada una de las cuales contiene una clave y un valor; estas reflejan los datos del par clave-valor.

Muestras de código

El código a continuación lista todos los elementos en un mapa de hash de almacén de memoria.

Listar elementos en un mapa de hash de 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) -- Las claves del mapa deben ser cadenas
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 }
-- Puremente con fines de registro, rastreamos en qué número de página estamos
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
-- Páginas de avance si hay más páginas para leer
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
-- Las claves agregadas al mapa de claves también se agregan a esta tabla de elementos esperados.
-- Más tarde, los elementos recuperados del mapa hash se compararán contra esta tabla de elementos esperados.
local expectedItems = populateHashMap(testHashMap, NUM_TEST_ITEMS)
-- Obtener páginas puede fallar. En este caso, lo dejaremos fallar y detendremos la ejecución del programa,
-- pero quizás quieras llamarlo y manejarlo de manera diferente.
print(`Getting HashMap pages with ListItemsAsync...`)
local pages = testHashMap:ListItemsAsync(NUM_TEST_ITEMS)
local retrievedItems = getItemsFromAllPages(pages)
local numMatchingItems = compareAllItems(retrievedItems, expectedItems)
-- Si no hubiera errores al configurar o obtener artículos, todos los artículos deberían coincidir.
print(`Program complete. {numMatchingItems}/{NUM_TEST_ITEMS} retrieved items matched the expected values.`)

Resumen

Propiedades

Propiedades heredados de Pages
  • Solo lectura
    No replicado
    Leer paralelo

    Si la página actual es la última página disponible o no.

Métodos

Métodos heredados de Pages
  • Devuelve los elementos en la página actual. Las claves en el elemento se determinan por la fuente de este objeto.

  • Proporciona

    Itera a la siguiente página en el objeto páginas, si es posible.

Propiedades

Métodos

Eventos