MemoryStoreHashMapPages

Hiển Thị Bản Đã Lỗi Thời

*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.

Không Thể Tạo
Không Sao Chép

Một loại đặc biệt của Pages đối tượng có các trang chứa cặp chìa khóa-giá trị từ một MemoryStoreHashMap .Pages:GetCurrentPage() có thể được sử dụng để lấy lại một mảng các bảng, mỗi bảng chứa một chìa khóa và giá trị; chúng phản ánh dữ liệu cặp chìa khóa-giá trị.

Mẫu mã

Mã dưới đây liệt kê tất cả các mục trong Bản đồ Hash Kho lưu trí.

Danh sách vật phẩm trong Bản đồ Hash 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) -- Các chìa khóa bản đồ 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(`Error setting key {key}: {result}`)
end
end
print("Done setting HashMap data.")
return createdItems
end
local function getItemsFromAllPages(pages: MemoryStoreHashMapPages): { [string]: any }
-- Chỉ để mục đích ghi nhận, 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(`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
-- Trang trước nếu có nhiều trang để đọc
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
-- Các chìa khóa được thêm vào bản đồ hash cũng được thêm vào bảng expectedItems này.
-- Sau đó, các mục bản đồ lấy lại sẽ được so sánh với bảng các vật phẩm mong đợi này.
local expectedItems = populateHashMap(testHashMap, NUM_TEST_ITEMS)
-- Nhận các trang có thể xảy ra lỗi. Trong trường hợp này, chúng tôi sẽ để lỗi xảy ra và ngừng thực thi chương trình,
-- nhưng bạn có thể muốn gọi nó và xử lý nó khác nhau.
print(`Getting HashMap pages with ListItemsAsync...`)
local pages = testHashMap:ListItemsAsync(NUM_TEST_ITEMS)
local retrievedItems = getItemsFromAllPages(pages)
local numMatchingItems = compareAllItems(retrievedItems, expectedItems)
-- Nếu không có cài đặt lỗi hoặc nhận được vật phẩm, tất cả các vật phẩm phải phù hợp.
print(`Program complete. {numMatchingItems}/{NUM_TEST_ITEMS} retrieved items matched the expected values.`)

Tóm Tắt

Thuộc Tính

Thuộc Tính kế thừa từ Pages
  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Liệu trang hiện tại có phải là trang cuối cùng có sẵn không.

Phương Pháp

Phương Pháp kế thừa từ Pages
  • Trả về các mục trên trang hiện tại. Các chìa khóa trong mục được xác định bởi nguồn của đối tượng này.

  • Sinh Lợi

    Lặp đến trang tiếp theo trong đối tượng trang, nếu có thể.

Thuộc Tính

Phương Pháp

Sự Kiện