2014-11-03 1 views
0

'학문적 인'코딩을 배운 적이 없기 때문에 내 질문이 바보가 아니기를 바랍니다.lua : 모든 그래픽 요소를 '호스트'하기 위해 테이블을 선언하고 있습니다.

변수의 로컬/글로벌 선언의 문제를 해결하려면, 내가 모든 미래 개체를 호스트하기 위해 파일의 시작 부분에 로컬 테이블을 작성하는 습관을했다 :

local g = {} 
g.myRectangle = display.newRect(...) 
g.myImage = display.newImg(...) 

인가 나쁜 관행이 ? 전반적인 애플리케이션 속도가 느려지는지 의심 스럽지만 확실하지 않습니다. 결국 내 모든 변수는 local입니다.

+0

이 질문은 [codereview.se]에 관한 내용이므로 불투명합니다. – hjpotter92

+0

_primarily opinion-based_ 질문으로 마감 될 수도 있습니다. 더 많은 정보를 제공하거나 특정 질문을해야합니다 (예 : 성능 측면 등) – hjpotter92

답변

0

나는 당신의 코드를 추가하지 않습니다

local gMyRectangle = display.newRect(...) 
local gMyImage = display.newImg(...) 

한 사용 사례 사이의 의미 diference이 표시되지 않습니다. 당신의 방식으로 테이블을 함수로 전달할 수 있으며, 매개 변수가 적어진다 (하나의 참조로 전체를 전달할 것이다). 그러나 그들이 모두 세계화되어 있기 때문에 아마 함수에 전달할 필요가 없을 것입니다.

변수에 액세스 할 때 (추가) 테이블 조회가 필요하므로 성능에 영향을 줄 수 있습니다. 테이블에있는 객체의 양에 따라 다릅니다. (여기에서 더 읽으십시오 http://lua-users.org/wiki/OptimisationCodingTips).

+0

전역 파일은 모든 파일에 걸쳐있는 반면, '로컬 g'테이블은 선언 된 파일에만 표시됩니다. –

+0

@ 중령, 네 말이 맞아. – PeterMmm