title: Passing array as function parameter in Lua?
body: <p>I'm trying to alter the class example I found in <a href="http://www.youtube.com/watch?v=yL9oOHIvKZc" rel="nofollow noreferrer">this video</a> to make it a bit more streamlined to use. Hopefully my comments explain what I'm trying to accomplish well enough. The problem I'm having is that when I try to use the data table it gives me this error: lua: class example.lua:7: attempt to index field 'data' (a nil value)</p>
  
  <p>I'm assuming that this means that array isn't being properly passed into the function, but I don't know why. I am very much a beginner with Lua.</p>
  
  <p>Here's what I've got:</p>
  
  <pre><code>local enemy = {}; --enemy class table
  
  function enemy:New(data)
    local object = {}; --table to store all of data within class
    local len = # data --get length of passed table
    for i = 1, len, 2 do --loop to input all data from passed table into object table
      object.data[i] = data[i + 1];
    end
  
    function object:getData(choice) --function that allows us to retrieve data from the class
      return self[choice];
    end
  
    return object; --return class data table so we can create objects using the class
  end
  
  local monsterdata = {"name", "monster", "x", 64, "y", 128, "hp", 4}; --table containing data of monster. keys are odd numbered, values to those keys are even numbered
  local monster = enemy:New(monsterdata); --create a object using the class
  
  local test = monster:getData("x"); --set variable to a value with the getData function
  
  print(test);
  </code></pre>