2012-08-07 3 views
3

C가 루아 5.2에서 객체를 참조하는 방법은 reference system을 사용하는 것과 같은 방법입니다. 단, 이러한 참조는 약하며 언제든지 가비지 수집 될 수 있습니다. 즉, 객체의 참조 카운트에 영향을 미치지 않는 현재의 모든 Lua 객체의 레지스트리가 있습니까?"약한 루아 레지스트리"를 찾으십시오

당신은 간접적 인 수준을 도입하여이 작업을 수행 할 수 있습니다
+0

http://lua-users.org/wiki/WeakTablesTutorial –

답변

7

- 대신 레지스트리에 직접 값을 저장하고 약한 수를 강제로 이렇게 :

  1. 이 설정하여 약한 확인 테이블 만들기 메타 테이블 {__mode = "v"}
  2. 저장하면 저장이 테이블
  3. 사용이 테이블에 추적 할 몇 가지 알려져 있지만, 고유 키
  4. 유지 모든 객체를 사용하여 레지스트리에서이 표 당신이 Pluto 같은 몇 가지 무거운 지속성을 사용하지 않는 대신 레지스트리 자체의 레지스트리에, 모든 오브젝트
  5. (루비 ObjectSpace을 같은)에는 "모든 루아 객체 추적"이 없다는 것을

주를 찾아 볼 수 있습니다. 자신이 저장/추적하는 오브젝트에만 액세스 할 수 있습니다.