3
:Luaでrawget/setが__index/__ newindexをバイパスする方法を__tostringをバイパスすることはできますか?たとえば
local my_table = { name = "my table" }
local my_table_mt = {}
function my_table_mt.__tostring(tbl)
return "%s<%s>":format(tbl.name or "?", rawtostring(tbl))
end
はこの可能のようなものですか? rawtostringメソッドが存在しないことは知っていますが、この動作をエミュレートしたり、それを完全にバイパスする方法がありますか?
はこのスレッドセーフですか? – Llamageddon
真のメタテーブルを隠すために '__metatable'を使うコードを扱うときは、普通の' getmetatable'の代わりに 'debug.getmetatable'を使うことを忘れないでください。 ( '__metatable'が途中であり、制限された環境などで' debug'モジュールを使うことができない場合は運がありません) – nobody
このコードはLuaでは完全に安全です。あなたがグローバルなロックを構築しない限り、Luaはスレッドセーフではありません。異なるOSスレッドで異なるLua状態を使用する – lhf