lua gc를 명시 적으로 호출하는 방법은 무엇입니까?

Francis

내 테스트 코드는 다음과 같습니다.

mt={}
myt={}
setmetatable(myt, mt)
mt.__gc=function()print("hello gc")end
myt=nil
collectgarbage()

하지만이 코드를 실행하면 메시지가 인쇄되지 않습니다.

그래서 내 코드에 뭔가 잘못된 것이 있다고 생각합니다.

최신 정보:

mt.__gc=function()print("hello gc")end
setmetatable(myt, mt)

__gc전에 필드를 설정 setmetatable하면 질문이 해결 되지만 ( 온라인 인터프리터 사용 ) 프로그램에서 C API 통해 동일한 코드를 실행하면 다시 죽습니다.luaL_dofile__gc

그리고 독립형 lua 인터 프리트 (lua 5.1.5)에서도 테스트했는데 '__gcc'도 죽었습니다.

유일하게 작동하는 좋은 경우는 버전이 5.3 인 온라인 인터프리터 입니다.

따라서 5.1 버전에서 작동하도록 '__gc'를 어떻게 얻을 수 있는지 물어봐야 할 것 같습니다.

lhf

호출 하기 전에__gc 필드 를 설정해야합니다 .setmetatable

매뉴얼은 말한다 :

__gc필드 없이 메타 테이블을 설정 하고 나중에 메타 테이블에서 해당 필드를 생성하면 객체가 종료 표시되지 않습니다.

테이블에 대한 GC 방법은 Lua 5.2에서 도입되었습니다. Lua 5.1에서는 작동하지 않습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

for 루프에서 정수 카운터 (i, j, k)를 사용하여 테이블 이름 / 주소를 만들 때 Lua 테이블 값을 명시 적으로 호출하는 방법은 무엇입니까?

분류에서Dev

동적 프록시에서 기본 메소드를 명시 적으로 호출하는 방법은 무엇입니까?

분류에서Dev

Java에서 동적으로 생성 된 요소를 다시 호출하는 방법은 무엇입니까?

분류에서Dev

<< 연산자의 템플릿 오버로드를 명시 적으로 호출하는 방법은 무엇입니까?

분류에서Dev

자바 : 각 객체를 명시 적으로 등록하지 않고 메소드 호출을 수신하는 방법은 무엇입니까?

분류에서Dev

C #에서 AluminumLua로 Lua 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

SBT InputTask를 동적으로 호출하는 방법은 무엇입니까?

분류에서Dev

함수를 동적으로 호출하는 방법은 무엇입니까?

분류에서Dev

TYPE RECORD로 프로 시저를 호출하는 방법은 무엇입니까?

분류에서Dev

내장 된 쉘을 명시 적으로 호출하는 방법은 무엇입니까?

분류에서Dev

멤버 함수의 const 버전을 명시 적으로 호출하는 방법은 무엇입니까?

분류에서Dev

TypeScript에서 제네릭 함수를 명시 적으로 입력하는 방법은 무엇입니까?

분류에서Dev

`sudo -S`를 명시 적으로 사용하는 목적은 무엇입니까?

분류에서Dev

기본적으로 tmux를 시작하여 명령을 실행하는 방법은 무엇입니까?

분류에서Dev

coq에서 유도 원리를 명시 적으로 사용하는 방법은 무엇입니까?

분류에서Dev

sagemaker autopilot의 유효성 검사 세트를 명시 적으로 설정하는 방법은 무엇입니까?

분류에서Dev

스타일 시트를보다 명확하고 효율적으로 만드는 방법은 무엇입니까?

분류에서Dev

Ruby에서 핵심 클래스를 명시 적으로 참조하는 방법은 무엇입니까?

분류에서Dev

"새 개체"로 함수를 호출하고 다시 함수로 호출하는 방법은 무엇입니까?

분류에서Dev

lua의 moonscript에서 함수를 호출하는 방법은 무엇입니까?

분류에서Dev

Avast를 일시적으로 종료하는 방법은 무엇입니까?

분류에서Dev

Avast를 일시적으로 종료하는 방법은 무엇입니까?

분류에서Dev

div를 순차적으로 표시하는 방법은 무엇입니까?

분류에서Dev

명령으로 powershell을 호출 할 때 오류를 완전히 억제하는 방법은 무엇입니까?

분류에서Dev

ajax 호출을 비동기 적으로 사용하고 완료 될 때까지 로더를 표시하는 방법은 무엇입니까?

분류에서Dev

모듈에서 특정 함수를 명시 적으로 가져 오는 방법은 무엇입니까?

분류에서Dev

Typescript에서 인터페이스를 명시 적으로 가져 오는 방법은 무엇입니까?

분류에서Dev

명령 줄에서 NetworkManager를 일시적으로 끄는 방법은 무엇입니까?

분류에서Dev

Java에서 여러 값으로 저장 프로 시저를 호출하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    for 루프에서 정수 카운터 (i, j, k)를 사용하여 테이블 이름 / 주소를 만들 때 Lua 테이블 값을 명시 적으로 호출하는 방법은 무엇입니까?

  2. 2

    동적 프록시에서 기본 메소드를 명시 적으로 호출하는 방법은 무엇입니까?

  3. 3

    Java에서 동적으로 생성 된 요소를 다시 호출하는 방법은 무엇입니까?

  4. 4

    << 연산자의 템플릿 오버로드를 명시 적으로 호출하는 방법은 무엇입니까?

  5. 5

    자바 : 각 객체를 명시 적으로 등록하지 않고 메소드 호출을 수신하는 방법은 무엇입니까?

  6. 6

    C #에서 AluminumLua로 Lua 함수를 호출하는 방법은 무엇입니까?

  7. 7

    SBT InputTask를 동적으로 호출하는 방법은 무엇입니까?

  8. 8

    함수를 동적으로 호출하는 방법은 무엇입니까?

  9. 9

    TYPE RECORD로 프로 시저를 호출하는 방법은 무엇입니까?

  10. 10

    내장 된 쉘을 명시 적으로 호출하는 방법은 무엇입니까?

  11. 11

    멤버 함수의 const 버전을 명시 적으로 호출하는 방법은 무엇입니까?

  12. 12

    TypeScript에서 제네릭 함수를 명시 적으로 입력하는 방법은 무엇입니까?

  13. 13

    `sudo -S`를 명시 적으로 사용하는 목적은 무엇입니까?

  14. 14

    기본적으로 tmux를 시작하여 명령을 실행하는 방법은 무엇입니까?

  15. 15

    coq에서 유도 원리를 명시 적으로 사용하는 방법은 무엇입니까?

  16. 16

    sagemaker autopilot의 유효성 검사 세트를 명시 적으로 설정하는 방법은 무엇입니까?

  17. 17

    스타일 시트를보다 명확하고 효율적으로 만드는 방법은 무엇입니까?

  18. 18

    Ruby에서 핵심 클래스를 명시 적으로 참조하는 방법은 무엇입니까?

  19. 19

    "새 개체"로 함수를 호출하고 다시 함수로 호출하는 방법은 무엇입니까?

  20. 20

    lua의 moonscript에서 함수를 호출하는 방법은 무엇입니까?

  21. 21

    Avast를 일시적으로 종료하는 방법은 무엇입니까?

  22. 22

    Avast를 일시적으로 종료하는 방법은 무엇입니까?

  23. 23

    div를 순차적으로 표시하는 방법은 무엇입니까?

  24. 24

    명령으로 powershell을 호출 할 때 오류를 완전히 억제하는 방법은 무엇입니까?

  25. 25

    ajax 호출을 비동기 적으로 사용하고 완료 될 때까지 로더를 표시하는 방법은 무엇입니까?

  26. 26

    모듈에서 특정 함수를 명시 적으로 가져 오는 방법은 무엇입니까?

  27. 27

    Typescript에서 인터페이스를 명시 적으로 가져 오는 방법은 무엇입니까?

  28. 28

    명령 줄에서 NetworkManager를 일시적으로 끄는 방법은 무엇입니까?

  29. 29

    Java에서 여러 값으로 저장 프로 시저를 호출하는 방법은 무엇입니까?

뜨겁다태그

보관