Próbuję zmienić przykład klasy, który znalazłem w this video, aby uczynić go bardziej usprawnionym w użyciu. Mam nadzieję, że moje komentarze wyjaśniają, co staram się osiągnąć wystarczająco dobrze. Problem polega na tym, że gdy próbuję użyć tabeli danych, pojawia się następujący błąd: lua: class example.lua: 7: próba indeksowania pola "data" (wartość zerowa)Przekazywanie tablicy jako parametru funkcji w Lua?
Jestem zakładając, że oznacza to, że tablica nie jest poprawnie przekazywana do funkcji, ale nie wiem dlaczego. Jestem początkującym Lua.
Oto co mam:
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);
Ach, to był taki prosty błąd ... choć przypuszczam, że tak się zwykle dzieje. –
Tak, a nie niezbyt często. Wpisywanie 't.a' zamiast' t [a] 'zdarza mi się od czasu do czasu. – mkluwe