수색…


통사론

  1. collectgarbage (gcrule [, gcdata]) - gcrule을 사용하여 쓰레기를 수집합니다.
  2. 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