MemoryStoreHashMapPages
Visualizza obsoleti
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Un tipo speciale di oggetto Pages che le sue pagine contengono coppie chiave-valore da un MemoryStoreHashMap .Pages:GetCurrentPage() può essere utilizzato per recuperare un array di tabelle, ognuna delle quali contiene una chiave e un valore; questi riflettono i dati della coppia chiave-valore.
Campioni di codice
Il codice seguente elenca tutti gli elementi in una mappa Hash del Memory Store.
Elencare gli elementi in una mappa Hash di 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) -- Le chiavi della mappa devono essere stringhe
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 }
-- Solo per scopi di registrazione, tracciamo quale numero di pagina siamo
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
-- Pagine di avanzamento se ci sono più pagine da leggere
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
-- Le chiavi aggiunte alla mappa hash vengono anche aggiunte a questa tabella di oggetti attesi.
-- In seguito, gli elementi della mappa hash recuperati verranno confrontati con questa tabella di elementi attesi.
local expectedItems = populateHashMap(testHashMap, NUM_TEST_ITEMS)
-- Ottenere le pagine può errore. In questo caso, lo lasceremo errore e interromperemo l'esecuzione del programma,
-- ma potresti volerlo chiamare e gestirlo in modo diverso.
print(`Getting HashMap pages with ListItemsAsync...`)
local pages = testHashMap:ListItemsAsync(NUM_TEST_ITEMS)
local retrievedItems = getItemsFromAllPages(pages)
local numMatchingItems = compareAllItems(retrievedItems, expectedItems)
-- Se non ci fossero errori nella impostazione o nel ricevere gli oggetti, tutti gli oggetti dovrebbero corrispondere.
print(`Program complete. {numMatchingItems}/{NUM_TEST_ITEMS} retrieved items matched the expected values.`)
Sommario
Metodi
Metodi provenienti da PagesRestituisce gli elementi sulla pagina attuale. Le chiavi nell'elemento sono determinate dalla fonte di questo oggetto.
Itera alla pagina successiva nell'oggetto pagine, se possibile.
Proprietà
Proprietà ereditato da Pages
Metodi
Proprietà ereditato da Pages