2014-10-01 7 views
4

어제 루아와 어울리고 'newproxy'기능을 발견했습니다.newproxy 란 무엇이며 어떻게 유용합니까?

http://wiki.roblox.com/index.php?title=Function_dump/Basic_functions#newproxy

나는 가지를 이해하지만, 나는 그것이 유용하는 방법을 모르겠어요. 필자는 metatable이 첨부 된 빈 userdata 객체를 만듭니다 (인수가 true 인 경우).

newproxy는 어떻게 유용합니까? 여기에 장난 동안 내가 무슨 짓을했는지의 예입니다

local proxy = newproxy(true) 
local metatable = getmetatable(proxy) 

metatable.__index = function(array, key) print(array, key) end 

local y = proxy[100] 

--[[ 
    OUTPUT: 
     userdata: 0x443ad4b4 100 
]] 
+0

http://lua-users.org/cgi-bin/wiki.pl?action=browse&id=HiddenFeatures&revision=15 –

+0

테이블보다 약간 가볍고 제거하기 전에 테이블에서 지원되지 않는 일부 메타 메소드를 지원합니다 다시. – Deduplicator

+0

'newproxy'는 루아 5.1에서 비추천되었으며 루아 5.2에서 제거되었습니다. – lhf

답변

0

this related SO question과 대답을 참조하십시오. 빈 사용자 데이터는 GC 재생 객체를 감지하는 데 유용했습니다. 이 역할은 Lua 5.2에서 크기가없는 테이블로 재생할 수 있습니다.