MemoryStoreHashMapPages

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Création impossible
Non répliqué

Un type spécial d'objet Pages dont les pages contiennent des paires clé-valeur d'un MemoryStoreHashMap .Pages:GetCurrentPage() peut être utilisé pour récupérer un ensemble de tables, chacune contenant une clé et une valeur ; elles reflètent les données de paire clé-valeur.

Échantillons de code

Le code ci-dessous liste tous les éléments dans une carte de hash de stock de mémoire.

Liste des éléments dans une carte de hachage 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) -- Les clés de la carte doivent être des chaînes
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 }
-- Pour des raisons purement de journalisation, nous suivons quel numéro de page nous sommes
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
-- Pages d'avance si il y a plus de pages à lire
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
-- Les clés ajoutées à la carte de hachage sont également ajoutées à cette table d'éléments attendus.
-- Plus tard, les éléments de la carte de hachage récupérés seront comparés à cette table d'éléments attendus.
local expectedItems = populateHashMap(testHashMap, NUM_TEST_ITEMS)
-- Obtenir des pages peut échouer. Dans ce cas, nous laisserons échouer l'erreur et arrêterons l'exécution du programme,
-- mais vous pouvez vouloir l'appeler et la gérer différemment.
print(`Getting HashMap pages with ListItemsAsync...`)
local pages = testHashMap:ListItemsAsync(NUM_TEST_ITEMS)
local retrievedItems = getItemsFromAllPages(pages)
local numMatchingItems = compareAllItems(retrievedItems, expectedItems)
-- S'il n'y avait pas d'erreur de définition ou d'obtention d'objets, tous les objets devraient correspondre.
print(`Program complete. {numMatchingItems}/{NUM_TEST_ITEMS} retrieved items matched the expected values.`)

Résumé

Propriétés

Propriétés hérités de Pages
  • Lecture uniquement
    Non répliqué
    Lecture parallèle

    Si la page actuelle est la dernière page disponible ou non.

Méthodes

Méthodes hérités de Pages
  • Renvoie les éléments de la page actuelle. Les clés de l'élément sont déterminées par la source de cet objet.

  • Itère vers la page suivante dans l'objet pages, si possible.

Propriétés

Méthodes

Évènements