JoshuaCF
JoshuaCF

Reputation: 49

Lua Naming a table from function input

If I do something wrong with the formatting or anything else, sorry, I don't use this site often.

I'm trying to make a function in lua that with take a name I give it, and create a subtable with that name, and when I tried something like this it just made the absolute name I put in the function's code.

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

How can I make this create a subtable that is called by the name I give in the function when I use it? Is there an indicator or something to let the code know not to use the name given, but to use the variable assigned when I use the function?

EDIT: So whenever I try this, I get the the result "table index is nil" and it points to the error on line 4

I went and tested this but with a different input type, and it was just my fault. I didn't think that strings would the the value type you'd need for what I'm doing. My problem is solved.

Complete code:

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)

Upvotes: 2

Views: 290

Answers (1)

Marc Balmer
Marc Balmer

Reputation: 1820

Table.SubtableName is actually a syntactic sugar for Table['SubtableName']. To use the contents of variable SubtableName use the idom Table[SubtableName].

Upvotes: 5

Related Questions