Ghi chú phát hành
Học
Lớp công cụ
MemoryStoreHashMapPages
Không Thể Tạo
Không Sao Chép

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.


Tóm Tắt
Thành viên kế thừa
Mẫu mã
Liệt kê các mục trong Hash Map 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("Đang thiết lập dữ liệu HashMap...")
local createdItems = {}
for index = 1, numItems do
local key = tostring(index) -- Các khóa HashMap phải là chuỗi
local value = `{key}_test_value`
local success, result = pcall(hashMap.SetAsync, hashMap, key, value, EXPIRATION)
if success then
createdItems[key] = value
else
warn(`Lỗi khi thiết lập khóa {key}: {result}`)
end
end
print("Đã hoàn thành việc thiết lập dữ liệu HashMap.")
return createdItems
end
local function getItemsFromAllPages(pages: MemoryStoreHashMapPages): { [string]: any }
-- Chỉ để mục đích ghi log, chúng tôi theo dõi số trang mà chúng tôi đang ở
local currentPageNumber = 1
local retrievedItems = {}
while not pages.IsFinished do
print(`Đang lấy các mục trên trang {currentPageNumber}...`)
local items = pages:GetCurrentPage()
for _, entry in pairs(items) do
print(` {entry.key}: {entry.value}`)
retrievedItems[entry.key] = entry.value
end
-- Tiến đến trang tiếp theo nếu còn trang để đọc
if not pages.IsFinished then
pages:AdvanceToNextPageAsync()
currentPageNumber += 1
end
end
print("Đã hoàn thành việc đọc tất cả các trang")
return retrievedItems
end
local function compareAllItems(retrievedItems: { [string]: any }, expectedItems: { [string]: any }): number
print("So sánh các mục đã lấy với các mục dự kiến...")
local numMatchingItems = 0
for key, expectedValue in pairs(expectedItems) do
if retrievedItems[key] == expectedValue then
numMatchingItems += 1
else
warn(`Giá trị đã lấy không khớp cho khóa {key}: dự kiến {expectedValue}, đã lấy {retrievedItems[key]}`)
end
end
print("Hoàn thành so sánh!")
return numMatchingItems
end
-- Các khóa được thêm vào hashmap cũng được thêm vào bảng expectedItems này.
-- Sau đó, các mục hashmap đã lấy sẽ được so sánh với bảng các mục dự kiến này.
local expectedItems = populateHashMap(testHashMap, NUM_TEST_ITEMS)
-- Việc lấy các trang có thể gặp lỗi. Trong trường hợp này, chúng tôi sẽ để nó lỗi và dừng thực thi chương trình,
-- nhưng bạn có thể muốn pcall nó và xử lý khác đi.
print(`Đang lấy các trang HashMap với ListItemsAsync...`)
local pages = testHashMap:ListItemsAsync(NUM_TEST_ITEMS)
local retrievedItems = getItemsFromAllPages(pages)
local numMatchingItems = compareAllItems(retrievedItems, expectedItems)
-- Nếu không có lỗi trong việc thiết lập hoặc lấy các mục, tất cả các mục nên khớp.
print(`Chương trình hoàn tất. {numMatchingItems}/{NUM_TEST_ITEMS} các mục đã lấy khớp với các giá trị dự kiến.`)
©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.