2017-04-07 1 views

Répondre

2

Il n'y a cette bidouille:

function rawtostring(t) 
    local m=getmetatable(t) 
    local f=m.__tostring 
    m.__tostring=nil 
    local s=tostring(t) 
    m.__tostring=f 
    return s 
end 
+0

Est-ce thread-safe? – Llamageddon

+0

Lorsque vous manipulez du code qui utilise '__metatable' pour cacher la vraie métatable, n'oubliez pas d'utiliser' debug.getmetatable' à la place de la plaine 'getmetatable'. (Si '__metatable' est gênant et que vous ne pouvez pas utiliser le module' debug' - par exemple dans un environnement restreint - vous n'avez pas de chance.) – nobody

+0

Ce code est totalement sûr dans Lua. Lua n'est pas thread-safe sauf si vous le construisez un verrou global. Utiliser différents états Lua dans différents threads OS – lhf