2017-01-01 1 views
2

포맷이나 다른 무엇인가 잘못하면 미안하지만이 사이트를 자주 사용하지 않습니다.루아 함수 입력에서 테이블 명명하기

루아에서 함수를 만들려고하는데 그 이름을 가지고 이름을 가진 서브 테이블을 만들고이 함수를 시도했을 때 함수의 코드에 넣은 절대 이름을 만들었습니다. .

NewSubtable = 
function(SubtableName) 
    Table.SubtableName = {} --Creates a subtable called SubtableName 
end 

어떻게이 내가 그것을 사용할 때 함수에 지정하는 이름에 의해 호출되는 서브 테이블을 생성 할 수 있습니까? 코드에서 주어진 이름을 사용하지 말고 함수를 사용할 때 할당 된 변수를 사용한다는 것을 알 수있는 표시기가 있습니까?

편집 : 그래서 이것을 시도 할 때마다, 내가 얻을 결과 "테이블 인덱스는 무기 호입니다"하고 라인 4

내가 가서이 테스트에 있지만 다른 입력 유형과 오류를 가리키는, 그리고 그건 내 잘못 이었어. 문자열이 내가하는 일에 필요한 값 유형이라고 생각하지 않았습니다. 내 문제가 해결되었습니다.

전체 코드 :

Items = {} 

NewWeapon = function(id, name, desc, minDMG, maxDMG) 
    Items[id] = {} 
    Items[id].Name = name 
    Items[id].Desc = desc 
    Items[id].MinDMG = minDMG 
    Items[id].MaxDMG = maxDMG 
end 

NewWeapon(Test, "test", "test", 1, 1) 
+2

'테이블 [서브 테이블 이름] = {}' –

답변

5

Table.SubtableName 실제로 Table['SubtableName']에 대한 문법 설탕입니다. 변수 SubtableName의 내용을 사용하려면 idom Table[SubtableName]을 사용하십시오.

+2

환영합니다! 텍스트를 백틱으로 묶어 코드로 표시합니다. – lhf

+0

팁 주셔서 감사합니다. 나는 이미 코드를 어떻게 마크 할 수 있는지 궁금해했다. 그리고 당신에게 좋은 2017! –

+0

입력 할 때마다 테이블을 만들려고 할 때마다 "테이블 인덱스가 0입니다."오류가 발생하고이를 수정하는 방법이 없습니다. – JoshuaCF