2014-09-23 1 views
-1

함수의 첫 번째 arg에 의해 주어진 테이블을 만들고 두 번째 arg에 의해 명명 된 키에 값을 할당하려고합니다. 예를 들어함수 인수 테이블 및 키 값

내가 만드는 (10) 또는 다른 인수, 학습 및 등급을, 될 인수 연필과 가격, 생성 할 연필 테이블과 pencil.price을주고 예를 들어
function myinsert(a, b) 
    a.b = 10 

lesson.grade = 10 그러나 나는 이것을 시도하면 로컬 a (숫자 값)를 인덱싱 할 수 없습니다. 어떻게해야합니까? 덕분에 많은

+1

함수를 호출 한 부분을 포함하여 전체 코드를 추가하십시오. –

+0

테이블을 포함한 값에는 이름이 없습니다. 변수가합니다. 'a'는 테이블을 참조하거나'a'는 테이블을 참조하는 변수의 이름을 나타내는 문자열을 의미합니까? –

+0

또한 'b' 매개 변수가 사용되지 않습니다. 코드가하는 일을 이해하는 데 도움이되는 IDE를 사용해보십시오. –

답변

0

당신은 문자열에서 임의의 코드를 평가합니다 loadstring 기능을 사용할 수 있습니다

http://www.lua.org/pil/14.1.html

예 :

function myinsert(a, b) 
    f = loadstring(string.format("%s={}; %s.%s=10", a, a, b)) 
    f() 
0

당신은 이름이 글로벌 테이블을 만들 _G[a]={[b]=10}을 사용할 수 있습니다 a에 저장됩니다. 10을받을 필드의 이름은 b에 저장됩니다. 예를 들어

:

a = "pencil" 
b = "price" 
_G[a]={[b]=10} 

이 코드는 a 또는 b이름들이 될 필요가 없습니다, 즉, 정말로없는 경우에도 작동

pencil.price=10 

과 동일 문자열.