MemoryStoreHashMapPages

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Tidak Direplikasi

Jenis khusus dari Pages objek yang halamannya berisi pasangan kunci-nilai dari MemoryStoreHashMap . Pages:GetCurrentPage() dapat digunakan untuk mengambil array tabel, masing-masing berisi kunci dan nilai; ini mencerminkan data pasangan kunci-nilai.

Contoh Kode

Kode di bawah ini mencantumkan semua item di Map Hash Toko Memori.

Mencantumkan item di Map Hash MemoriStore

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) -- Kunci peta harus menjadi string
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 }
-- Murni untuk tujuan pencatatan, kami melacak nomor halaman mana yang kami gunakan
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
-- Halaman maju jika ada lebih banyak halaman untuk dibaca
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
-- Kunci yang ditambahkan ke hashmap juga ditambahkan ke tabel expectedItems ini.
-- Kemudian, item hashmap yang diambil akan dibandingkan dengan tabel item yang diharapkan ini.
local expectedItems = populateHashMap(testHashMap, NUM_TEST_ITEMS)
-- Mendapatkan halaman bisa salah. Dalam kasus ini, kami akan membiarkannya salah dan menghentikan eksekusi program,
-- tetapi anda mungkin ingin meneleponnya dan menanganinya secara berbeda.
print(`Getting HashMap pages with ListItemsAsync...`)
local pages = testHashMap:ListItemsAsync(NUM_TEST_ITEMS)
local retrievedItems = getItemsFromAllPages(pages)
local numMatchingItems = compareAllItems(retrievedItems, expectedItems)
-- Jika tidak ada pengaturan kesalahan atau mendapatkan item, semua item harus cocok.
print(`Program complete. {numMatchingItems}/{NUM_TEST_ITEMS} retrieved items matched the expected values.`)

Rangkuman

Properti

Properti diwarisi dari Pages
  • Hanya Baca
    Tidak Direplikasi
    Baca Paralel

    Apakah halaman saat ini adalah halaman terakhir yang tersedia atau tidak.

Metode

Metode diwarisi dari Pages
  • Kembalikan item di halaman saat ini. Kunci-kunci dalam item ditentukan oleh sumber objek ini.

  • Mengulang ke halaman berikutnya dalam objek halaman, jika memungkinkan.

Properti

Metode

Acara