2011-11-01 3 views
2

예를 들어 모듈을로드했는데이 모듈에 테이블 이름이 "Table1"인 테이블이 있습니다. 메인 파일에는 "Table1"과 똑같은 복사본이되고 싶은 테이블이 있습니다. 그 테이블의 이름 만 가지고 있다면 어떻게 할 수 있습니까? 내가 좋아하는 그것을하려고 할 때이문자열을 테이블로 변환하는 방법

str = "Table1" 
t = str 

내가 분명히 대신 테이블의 문자열을 얻을, 그래서 어떻게 내가 테이블의 내용 테이블 내용을받을 수 있나요? 내가 원하는 것은 어떻게 든 str가 그 값을 얻을 수 _G[str]를 사용하여 전역 변수의 이름 인 경우이 하나

t = Table1 

답변

2

것과 동일합니다 수 코드

t = 'Table1' 

이 라인을 만들 수있게하는 것입니다.

2

루아의 테이블은 매우 유연하고 중요한 데이터 유형입니다. 많은 것은 심지어 모듈도 테이블입니다. 당신이 알고 있다면,이 모듈에서 주어진 이름의 테이블, 그리고 당신은 그냥 테이블 얻기 위해 [] 연산자를 사용하여, 변수에 이름의 가지고 : 그러나

tablename = 'Table1' -- you get this from somewhere, assuming it's not fixed 

require 'mymodule' 
t = mymodule[tablename] 

을, 이것은 매우 아니다 왜냐하면 모듈에 주어진 이름으로 테이블이 있다는 것을 "알았다"고 가정하기 때문입니다. 주어진 표준 이름으로 테이블을 내보낼 모듈을 언제든지 디자인 할 수 있습니다 (변경되지 않음).

require 'mymodule' 
t = mymodule.Table1 -- equivalent to mymodule['Table1'] 
관련 문제