Lua
가비지 컬렉터 및 약한 테이블
수색…
통사론
- collectgarbage (gcrule [, gcdata]) - gcrule을 사용하여 쓰레기를 수집합니다.
- setmetatable (탭, {__mode = 약점 모드}) - 탭의 약한 모드를 약한 모드로 설정
매개 변수
매개 변수 | 세부 |
---|---|
gcrule & gcdata | : 작업 (가비지 수집) (GC)에 "stop" (정지 회수), "restart" (다시 수집을 시작) "collect" 또는 nil (전체 가비지 수집), "step" (한 포집 공정을 수행), "count" ( "setpause" , 데이터는 0 ~ 100 % (gc의 일시 정지 파라미터 설정), "setstepmul" 및 데이터는 0 ~ 100 숫자입니다 (gc의 경우 "stepmul" 설정) . |
약점 | 약한 테이블 유형 : "k" (약한 키만), "v" (약한 값만), "vk" (약한 키와 값) |
약한 테이블
local t1, t2, t3, t4 = {}, {}, {}, {} -- Create 4 tables
local maintab = {t1, t2} -- Regular table, strong references to t1 and t2
local weaktab = setmetatable({t1, t2, t3, t4}, {__mode = 'v'}) -- table with weak references.
t1, t2, t3, t4 = nil, nil, nil, nil -- No more "strong" references to t3 and t4
print(#maintab, #weaktab) --> 2 4
collectgarbage() -- Destroy t3 and t4 and delete weak links to them.
print(#maintab, #weaktab) --> 2 2
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow