2016-04-29 10 views
1

Ich frage mich, ob es Möglichkeit gibt, Klassenname des Objekts zur Laufzeit zu bekommen. ich meine so etwas wie diese: hier ist mein sehr einfaches SkriptLua get Klassenname des Objekts zur Laufzeit

person=TPerson:new() 

und ich möchte in meiner Anwendung (in delphi) bekommen „TPerson“ Ich versuchte es mit info lua debug aber was ich weiß zu bekommen, ist gerufene Funktion „neu“, aber ich brauche Klasse „TPerson“

lua_getstack(l,0,PL_Debug); 
lua_getfield(l,LUA_GLOBALSINDEX,'f'); 
lua_getinfo(l,'n',PL_Debug); 
nameOfCurrnetFunction:=PL_Debug.name; // here is stored "new" 
zu bekommen

so möglich ist Klassennamen zu bekommen? danke

Antwort

3

Offiziell haben Sie keine Klassen in Lua also die Art Ihrer Objekte wäre immer Tabelle. Natürlich steht es Ihnen frei, eine Funktion zu implementieren, die Ihnen einen benutzerdefinierten Typnamen als String zurückgibt. Lua-weise bleibt es ein Tisch tough

+0

In Lua 5.3, für Klassen erstellt mit 'luaL_newmetatable (L, name)', wird der 'Name' in der Metatabelle als' __name' gespeichert. – lhf

Verwandte Themen