2016-04-29 30 views
1

実行時にオブジェクトのクラス名を取得する方法があるかどうか疑問に思っています。 私はこのような何か意味:私はLuaのデバッグ情報でそれを試みたが、私が知っていることを得るために (Delphiで)「TPerson」を取得ここ は私の非常に簡単なスクリプト実行時にオブジェクトのクラス名を取得する

person=TPerson:new() 

であると私は私のアプリで必要とされます私はクラス "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" 

クラス名は取得できますか? ありがとう

答えて

3

公式には、あなたのオブジェクトのタイプは常にテーブルになるように、Luaにクラスはありません。もちろん、カスタムの型名を文字列として返す関数を実装することは自由です。ルアはそれがテーブルのままになります

+0

'luaL_newmetatable(L、name)'で作成されたクラスの場合、 'name'は' __name'としてメタテーブルに格納されます。 – lhf

関連する問題