배우기
엔진 클래스
MemoryStoreHashMap
만들 수 없음
복제되지 않음

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.


요약
메서드
GetAsync(key: string):Variant
SetAsync(key: string,value: Variant,expiration: number):boolean
UpdateAsync(key: string,transformFunction: function,expiration: number):Variant
상속된 멤버

API 참조
메서드
GetAsync
생성
기능: DataStore
MemoryStoreHashMap:GetAsync(key:string):Variant
매개 변수
key:string
반환
Variant
코드 샘플
메모리 스토어 해시 맵에서 데이터 가져오기
local MemoryStoreService = game:GetService("MemoryStoreService")
local hashMap = MemoryStoreService:GetHashMap("HashMap1")
local key = "User_1234"
local value = 1000
local expiration = 30
local setSuccess, _ = pcall(function()
return hashMap:SetAsync(key, value, expiration)
end)
if setSuccess then
print("설정 성공!")
end
local item
local getSuccess, getError = pcall(function()
item = hashMap:GetAsync(key)
end)
if getSuccess then
print(item)
else
warn(getError)
end

ListItemsAsync
생성
기능: DataStore
MemoryStoreHashMap:ListItemsAsync(count:number):MemoryStoreHashMapPages
매개 변수
count:number
코드 샘플
메모리 스토어 해시 맵에 항목 나열
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("HashMap 데이터를 설정하는 중...")
local createdItems = {}
for index = 1, numItems do
local key = tostring(index) -- HashMap 키는 문자열이어야 합니다.
local value = `{key}_test_value`
local success, result = pcall(hashMap.SetAsync, hashMap, key, value, EXPIRATION)
if success then
createdItems[key] = value
else
warn(`키 {key} 설정 중 오류 발생: {result}`)
end
end
print("HashMap 데이터 설정 완료.")
return createdItems
end
local function getItemsFromAllPages(pages: MemoryStoreHashMapPages): { [string]: any }
-- 순전히 로깅 목적을 위해 현재 페이지 번호를 추적합니다.
local currentPageNumber = 1
local retrievedItems = {}
while not pages.IsFinished do
print(`페이지 {currentPageNumber}에서 아이템 가져오는 중...`)
local items = pages:GetCurrentPage()
for _, entry in pairs(items) do
print(` {entry.key}: {entry.value}`)
retrievedItems[entry.key] = entry.value
end
-- 읽을 페이지가 더 있는 경우 페이지를 이동합니다.
if not pages.IsFinished then
pages:AdvanceToNextPageAsync()
currentPageNumber += 1
end
end
print("모든 페이지 읽기 완료")
return retrievedItems
end
local function compareAllItems(retrievedItems: { [string]: any }, expectedItems: { [string]: any }): number
print("가져온 아이템과 예상 아이템 비교 중...")
local numMatchingItems = 0
for key, expectedValue in pairs(expectedItems) do
if retrievedItems[key] == expectedValue then
numMatchingItems += 1
else
warn(`키 {key}에 대한 가져온 값 불일치: 예상 {expectedValue}, 가져온 {retrievedItems[key]}`)
end
end
print("비교 완료!")
return numMatchingItems
end
-- 해시맵에 추가된 키는 이 expectedItems 테이블에도 추가됩니다.
-- 나중에 가져온 해시맵 아이템이 예상 아이템 테이블과 비교됩니다.
local expectedItems = populateHashMap(testHashMap, NUM_TEST_ITEMS)
-- 페이지 가져오기에서 오류가 발생할 수 있습니다. 이 경우, 오류를 발생시켜 프로그램 실행을 중지합니다,
-- 하지만 pcall을 사용하여 다르게 처리할 수 있습니다.
print(`ListItemsAsync로 HashMap 페이지 가져오는 중...`)
local pages = testHashMap:ListItemsAsync(NUM_TEST_ITEMS)
local retrievedItems = getItemsFromAllPages(pages)
local numMatchingItems = compareAllItems(retrievedItems, expectedItems)
-- 아이템 설정이나 가져오는 중 오류가 없었다면, 모든 아이템이 일치해야 합니다.
print(`프로그램 완료. {numMatchingItems}/{NUM_TEST_ITEMS} 가져온 아이템이 예상 값과 일치합니다.`)

RemoveAsync
생성
기능: DataStore
MemoryStoreHashMap:RemoveAsync(key:string):()
매개 변수
key:string
반환
()
코드 샘플
메모리 저장소 해시 맵에서 데이터 제거
local MemoryStoreService = game:GetService("MemoryStoreService")
local hashMap = MemoryStoreService:GetHashMap("HashMap1")
local key = "User_1234"
local value = 1000
local expiration = 30
local setSuccess, setError = pcall(function()
return hashMap:SetAsync(key, value, expiration)
end)
if not setSuccess then
warn(setError)
end
local removeSuccess, removeError = pcall(function()
hashMap:RemoveAsync(key)
end)
if removeSuccess then
print("제거 성공!")
else
warn(removeError)
end

SetAsync
생성
기능: DataStore
MemoryStoreHashMap:SetAsync(
key:string, value:Variant, expiration:number
매개 변수
key:string
value:Variant
expiration:number
반환
코드 샘플
메모리 저장소 해시 맵에 데이터 추가하기
local MemoryStoreService = game:GetService("MemoryStoreService")
local hashMap = MemoryStoreService:GetHashMap("HashMap1")
local key = "User_1234"
local value = 1000
local expiration = 30
local setSuccess, setError = pcall(function()
return hashMap:SetAsync(key, value, expiration)
end)
if setSuccess then
print("설정 성공!")
else
warn(setError)
end

UpdateAsync
생성
기능: DataStore
MemoryStoreHashMap:UpdateAsync(
key:string, transformFunction:function, expiration:number
):Variant
매개 변수
key:string
transformFunction:function
expiration:number
반환
Variant
코드 샘플
메모리 저장소 해시 맵 업데이트
local MemoryStoreService = game:GetService("MemoryStoreService")
local hashMap = MemoryStoreService:GetHashMap("ResourceInventory")
local function contributeResources(itemResource, addedCount)
local success, newResourceCount = pcall(function()
return hashMap:UpdateAsync(itemResource, function(resource)
resource = resource or { count = 0 }
resource.count = resource.count + addedCount
-- 최대 자원 수량을 초과하지 않도록 보장
if resource.count > 500 then
resource.count = 500
end
return resource
end, 1200)
end)
if success then
print(newResourceCount)
end
end
contributeResources("myResource", 50)

©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.